在我正在测试的网站中,有一个包含5个具有相同名称的嵌套类的表。
我需要验证表格下面只有5个类,但它们都是相同的名称。
如何迭代5个类?
我附上了一张图片,以便更好地解释我的意思
答案 0 :(得分:3)
这取决于“迭代”的含义,但一种可能性是使用XPath的子位置选择器。例如,findElement(By.xpath("//div[contains(@class, 'list-container')]/div[contains(@class, 'list-0')]/div[2]"))
将找到“top-performer-item”div中的第二个。
答案 1 :(得分: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);
}
答案 2 :(得分:1)
最后,我所要做的就是确保3个列表中共有15个项目,因此每个列表中有5个项目。我需要迭代以确保没有遗漏任何东西,并且在你的答案的帮助下我找到了答案:
List<WebElement> element = driver.findElements(By
.className("top-performer-item"));
assertEquals(15, element.size());
driver.quit();
我没有选择任何特别的答案,因为这是你们两个帮助我的帮助。我非常感谢你!