Selenium 无需迭代即可定位表数据行数据

Selenium 无需迭代即可定位表数据行数据,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我们可以用这样一个简单的表达式来定位表行数据,而不是遍历整个表项。我用的是这个简单的表达 driver.findElements(By.xpath("//table//tr//td[contains(text(),\"Row 1, Column 1\")])")); 对于此站点 String URL="http://www.tutorialspoint.com/html/html_tables.htm"; driver.navigate().to(URL); 但我得到了这个错误 xpath表

我们可以用这样一个简单的表达式来定位表行数据,而不是遍历整个表项。我用的是这个简单的表达

driver.findElements(By.xpath("//table//tr//td[contains(text(),\"Row 1, Column 1\")])"));
对于此站点

String URL="http://www.tutorialspoint.com/html/html_tables.htm";
driver.navigate().to(URL);
但我得到了这个错误 xpath表达式“//table//tr//td[contains(text(),“Row 1,Column 1”)]”无法计算或不会生成WebElement(警告:服务器未提供任何stacktrace信息)


我知道常用的reative path和absolute path表达式。

要根据包含特定文本单元格的表行定位表行,可以使用以下XPath定位器:

 //tr[td[text()='myCellText']]

我认为可能是您的语法导致了问题,请尝试:

driver.findElements(By.xpath("//table//tr//td[contains(text(),'Row 1, Column 1')]"));

如果单元格中的文本只有一部分是已知的,那么也可以使用contains函数:
//tr[td[contains(text(),'partialText')]]
此xpath在页面上找到两个匹配项。我建议使用chrome和XPath助手应用程序来帮助创建有用的XPath。