在我正在测试的网站中,有一个包含 5 个同名嵌套类的表。
我需要验证表下恰好有 5 个类,但它们的名称都相同。
如何遍历 5 个类?
我附上了一张图片以更好地解释我的意思
在我正在测试的网站中,有一个包含 5 个同名嵌套类的表。
我需要验证表下恰好有 5 个类,但它们的名称都相同。
如何遍历 5 个类?
我附上了一张图片以更好地解释我的意思
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.
您可以尝试以下代码段:
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);
}
最后,我要做的就是确保 3 个列表中总共有 15 个项目,因此每个列表中有 5 个项目。我需要进行迭代以确保没有遗漏任何内容,并在您的答案的帮助下找到了答案:
List<WebElement> element = driver.findElements(By
.className("top-performer-item"));
assertEquals(15, element.size());
driver.quit();
我没有选择任何特定的答案,因为是你们俩的帮助让我到达了那里。我非常感谢你!