-1

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

谢谢,

4

3 回答 3

1

你做错了两件事。

首先,您使用.findElementwhich 将返回与定位器匹配的第一个元素。

其次,您只是抓住了table,而没有别的,与该表中的行无关。

你可以这样做:

List<WebElement> list = driver.findElement(By.xpath("//table[@width='270']")).findElements(By.cssSelector("tbody > tr"));

list现在将包含其中的每个tr(行)table

于 2013-11-12T10:13:36.647 回答
0
list=driver.findElements(By.xpath("//table[@width='270']/tr"));

尝试 findElements() 代替。

于 2013-11-12T05:58:50.760 回答
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 选择器参考

于 2015-08-12T18:27:38.820 回答