如何在表格中循环并单击元素?我需要点击屏幕截图中突出显示的类。
这是我到目前为止的代码。
WebElement table1 = driver.findElement(By.className("rptDataOverlayPanelContent"));
List<WebElement> allrows1 = table1.findElements(By.tagName("tr"));
for(WebElement row1: allrows1){
List<WebElement> Cells = row1.findElements(By.tagName("td"));
for(WebElement Cell:Cells){
if (Cell.getClass().equals("sp-preview-inner")) {
Cell.click();
}
}
}
答案 0 :(得分:0)
您的代码存在问题Cell.getClass()
。它没有返回DOM元素的Selenium相关class
属性,它返回 Java类,因此在这种情况下为Class<WebElement>
。您实际在此处调用的方法是Object#getClass。
要使用Selenium检索WebElement
的DOM类属性,您应该使用
cell.getAttribute("class") // Will return a String, like "sp-preview-inner"
代替。以下是官方documentation的方法。这是相关的摘录:
获取元素的给定属性的值。将返回当前值,即使在页面加载后已经修改了该值。
如果给定的名称是&#34; 类&#34;,则&#34; className &#34;财产归还。
或者,您可以按类名直接搜索元素:
// Find all div elements with class "sp-preview-inner"
List<WebElement> elements = driver.findElements(
By.cssSelector("div[class='sp-preview-inner']"));
// Click all of them
elements.forEach(WebElement::click);