2017-06-23 299 views
0

Webテーブルの行数をカウントするためにselenium 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

このコードは、76行を期待している間に1を出力します。私はそれが最初の行だけを数えると思う。私もこのコードを試した:リスト行= driver.findElements(By.tagName( "tr"));しかし、これは76行の代わりに17行を出力します。 – Alison

答えて

0

あなたは、まず<tbody>を選択要素を格納し、現在の要素内のすべての<tr>のを見つけ、あなたが取得したリストの長さを取得することにより、あなたの値を取得する必要がありますする必要があります

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は要素のリストを取得します。

関連する問題