Java 在selenium中迭代具有相同名称的类

Java 在selenium中迭代具有相同名称的类,java,selenium-webdriver,Java,Selenium Webdriver,在我正在测试的网站中有一个表,其中包含5个同名的嵌套类 我需要验证表下是否有5个类,但它们都是相同的名称 如何遍历这5个类 我附上了一张图片,以便更好地解释我的意思您可以尝试下面的片段: int numberOfElementsFound = getNumberOfElementsFound(By.cssSelector(".list-container > .list-0 > .top-performer-item")); for (int pos = 0; pos <

在我正在测试的网站中有一个表,其中包含5个同名的嵌套类

我需要验证表下是否有5个类,但它们都是相同的名称

如何遍历这5个类


我附上了一张图片,以便更好地解释我的意思

您可以尝试下面的片段:

int numberOfElementsFound = getNumberOfElementsFound(By.cssSelector(".list-container > .list-0 > .top-performer-item"));
  for (int pos = 0; pos < numberOfElementsFound; pos++) {
    getElementWithIndex(locator, pos).doWhateverYouWantWithTheElement()
  }

  public int getNumberOfElementsFound(By by) {
      return webDriver.findElements(by).size();
  }

  public WebElement getElementWithIndex(By by, int pos) {
      return webDriver.findElements(by).get(pos);
  }
int-numberOfElementsFound=getNumberOfElementsFound(由.cssSelector(“.list-container>.list-0>.top-performer项”);
对于(int pos=0;pos
您可以尝试以下代码片段:

int numberOfElementsFound = getNumberOfElementsFound(By.cssSelector(".list-container > .list-0 > .top-performer-item"));
  for (int pos = 0; pos < numberOfElementsFound; pos++) {
    getElementWithIndex(locator, pos).doWhateverYouWantWithTheElement()
  }

  public int getNumberOfElementsFound(By by) {
      return webDriver.findElements(by).size();
  }

  public WebElement getElementWithIndex(By by, int pos) {
      return webDriver.findElements(by).get(pos);
  }
int-numberOfElementsFound=getNumberOfElementsFound(由.cssSelector(“.list-container>.list-0>.top-performer项”);
对于(int pos=0;pos
这取决于“迭代”的含义,但一种可能是使用XPath的子位置选择器。例如,
findelelement(By.xpath(//div[contains(@class,'list-container'))]/div[contains(@class,'list-0')]/div[2])
将查找第二个“顶级执行项”div。

这取决于您所说的“迭代”是什么意思,但一种可能是使用xpath的子位置选择器。例如,
findelelement(By.xpath(“//div[contains(@class,'list-container'))]/div[contains(@class,'list-0')]/div[2]”)
将找到第二个“最佳执行项”div。

最后,我要做的就是确保3个列表中总共有15个项目,因此每个列表中有5个项目。我需要迭代以确保没有遗漏任何内容,在您的答案的帮助下,我找到了答案:

List<WebElement> element = driver.findElements(By
            .className("top-performer-item"));

    assertEquals(15, element.size());
    driver.quit();
List元素=driver.findElements(按
.className(“最佳表现项目”);
assertEquals(15,element.size());
driver.quit();

我没有选择任何特定的答案,因为是你们两个的帮助让我达到了目的。我非常感谢你

最后,我要做的就是确保3个列表中总共有15个项目,所以每个列表中有5个项目。我需要迭代以确保没有遗漏任何内容,在您的答案的帮助下,我找到了答案:

List<WebElement> element = driver.findElements(By
            .className("top-performer-item"));

    assertEquals(15, element.size());
    driver.quit();
List元素=driver.findElements(按
.className(“最佳表现项目”);
assertEquals(15,element.size());
driver.quit();

我没有选择任何特定的答案,因为是你们两个的帮助让我达到了目的。我非常感谢你

你在用什么语言?你在用什么语言?仅供参考,你没有迭代任何东西。您测量了结果集的大小。如果你的问题是“我必须确保3个列表中总共有15个项目”,你就会得到你想要的答案。仅供参考,你没有重复任何内容。您测量了结果集的大小。如果你的问题是“我必须确保3个列表中总共有15个项目”,你就会得到你想要的答案。