2017-06-23 68 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所以會得到一個元素列表。

相關問題