0

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

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

如何遍历 5 个类?

我附上了一张图片以更好地解释我的意思在此处输入图像描述

4

3 回答 3

3

It depends on what you mean by "iterate", but one possibility would be to use XPath's child-position selector. For example, findElement(By.xpath("//div[contains(@class, 'list-container')]/div[contains(@class, 'list-0')]/div[2]")) will find the second of the "top-performer-item" divs.

于 2012-11-27T22:01:14.080 回答
2

您可以尝试以下代码段:

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);
  }
于 2012-11-27T16:06:30.630 回答
2

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

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

    assertEquals(15, element.size());
    driver.quit();

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

于 2012-11-28T08:40:28.263 回答