怎么算不。表中的行数

时间:2013-11-12 05:55:58

标签: java selenium selenium-webdriver

假设我想要计算表中没有行。但如果没有可用的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/ 计算航班表中的行数。

感谢,

3 个答案:

答案 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());

CSS Selectors reference