假设我想要计算表中没有行。但如果没有可用的ID。和使用的嵌套表。 那么如何为行数计数写xpath。 我试过了
WebDriver driver = new FirefoxDriver();
driver.get("http://newtours.demoaut.com/");
List<WebElement> list=driver.findElement(By.xpath("//table[@width='270']"));
System.out.println(list.size());
示例:http://newtours.demoaut.com/ 计算航班表中的行数。
感谢,
答案 0 :(得分:1)
你做错了两件事。
首先,您正在使用.findElement
,它将返回与定位器匹配的第一个元素。
其次,你只是抓住table
,没有别的,与该表中的行无关。
你可以这样做:
List<WebElement> list = driver.findElement(By.xpath("//table[@width='270']")).findElements(By.cssSelector("tbody > tr"));
list
现在将包含tr
内的每个table
(行)。
答案 1 :(得分:0)
list=driver.findElements(By.xpath("//table[@width='270']/tr"));
尝试使用findElements()。
答案 2 :(得分:0)
如果可能,您应该避免使用XPath,因为它们更慢且更容易出错。我不知道使用表格宽度作为定位器是多么稳定但是因为你使用它,我也会使用它。
WebDriver driver = new FirefoxDriver();
driver.get("http://newtours.demoaut.com/");
List<WebElement> list = driver.findElements(By.cssSelector("table[width='270'] > tbody > tr"));
System.out.println(list.size());