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。