2017-06-23 123 views
0

我使用硒web驱动程序来计算Web表格的行数。这是我对该部分的代码:Selenium Web驱动程序输出错误的Web表格行数

List<WebElement> rows = driver.findElements(By.xpath("//div[@class='z-listbox-body']/table/tbody/tr")); totalrows = rows.size(); 

它不输出预期结果。谁能告诉我为什么?

+1

实际和预期结果是什么?你可以发布一个页面源代码片段来说明它应该找到的内容吗? – jsheeran

+0

什么是实际/预期结果?大教堂的例子。 – alexey28

+0

此代码输出1,而我期待76行。我认为这只是第一排。我也试过这段代码:列表 rows = driver.findElements(By.tagName(“tr”));但这会输出17行而不是76. – Alison

回答

0

您应该选择<tbody>第一,存储元素,找到所有<tr> S IN当前元素,然后你应该得到所获得的列表的长度让你的价值:

WebElement tbody = driver.findElement(By.xpath("//div[@class='z-listbox-body']/table/tbody")); 
List<WebElement> rows = tbody.findElements(By.xpath("tr")); 
totalrows = rows.size(); 

很抱歉,如果我做有什么不对,但我使用Python和Selenium,而不是Java。

这是工作的Python代码:

tbody = browser.find_element_by_xpath("//div[@class='z-listbox- 
body']/table/tbody") 
rows = tbody.find_elements_by_xpath("tr") 
totalrows = len(rows) 

需要注意的是,当我选择我做find_element_by_xpath的TBODY所以将只得到第一个元素,并将其存储在一个正常的变量和选择时,我正在做的行find_elments_by_xpath所以会得到一个元素列表。

相关问题