我试图单击列内的动态按钮,但遇到此错误org.openqa.selenium.InvalidSelectorException:无效选择器:由于以下错误,无法找到带有xpath表达式2的元素: TypeError:无法在'Document'上执行'evaluate':结果不是节点集,因此无法转换为所需的类型。
这是我的相同代码:
WebElement htmltable=driver.findElement(By.xpath("//*[@id='root']//table/tbody"));
//*[@id="root"]//table/tbody/tr[1]/td[1]
List<WebElement> rows=htmltable.findElements(By.tagName("tr"));
System.out.println("Number of rows:"+rows.size());
for(int rnum=0;rnum<rows.size();rnum++)
{
List<WebElement> columns=rows.get(rnum).findElements(By.tagName("td"));
System.out.println("Number of columns:"+columns.size());
for(int cnum=0;cnum<columns.size();cnum++)
{
System.out.println(columns.get(cnum).getText());
}
String beforexpath = "//*[@id='root']//table/tbody/tr[";
String afterxpath = "]/td[3]";
for (int i=2;i<=rnum;i++) {
String SourcetableName= driver.findElement(By.xpath(""+i+"")).getText();
System.out.println(SourcetableName);
if(SourcetableName.contains("account_master")) {
Thread.sleep(5000);
driver.findElement(By.xpath("//*[@id='root']//table/tbody/tr["+i+"]/td[5]//*[@id='plus']")).click();
}
这是HTML:
<tr class=""><td tabindex="14" class="" style="text-align: left;"><div></div></td><td tabindex="15" class="" style="text-align: left;">78</td><td tabindex="16" class="" style="text-align: left;">account_master_US</td><td tabindex="17" class="" style="text-align: left;"></td><td tabindex="18" class="" style="text-align: left;"><div class="glyphicon glyphicon-plus" id="plus" style="color: black; cursor: pointer;"></div></td><td tabindex="19" class="" style="text-align: left;"></td><td tabindex="20" class="" style="text-align: left;">13</td><td tabindex="21" class="" style="text-align: left;"></td><td tabindex="22" class="" style="text-align: left;"></td><td tabindex="23" class="" style="text-align: left;"></td><td tabindex="24" class="" style="text-align: left;"></td><td tabindex="25" class="" style="text-align: left;"></td><td tabindex="26" class="" style="text-align: left;"></td></tr>