我正在使用selenium webdriver和java編寫測試腳本,其中包含具有多行列的表的頁面。這些行具有相同的樣式和類。但是,一些行是隱藏的,其中一些顯示在頁面上。有〜1800行,其中只有7行顯示在頁面上。現在,我必須在可視行上處理流程數據,我已經創建了xpath,但是需要很長時間來驗證頁面上哪些行號是可見的,並且如果可見,那麼繼續執行腳本,否則請檢查下一行。這是我使用for循環實現的,但它太耗時。那麼在行中有一個下拉選項,但這些下拉列表的ID是動態的基於錶行像testid_0 - 第1行,testid_1 - 第2行。我的問題是有什麼辦法可以得到像行的可見行數7,第100行,第500行可以在頁面上看到,而不需要花費時間或使用for循環?或者我們可以得到使用硒運行的JavaScript並返回頁面上顯示的行數。selenium webdriver在表中獲得可見行數
回答
可以使用適當的xpath
,像過濾隱形tr
:
//table/tbody/tr[not(contains(@style,'display: none;'))]
我試過了,它也給了我可見的行。但是,我必須處理tr/td數據。也就是說,如果tr是可見的而不是獲取每個td的數據,比如tr/td [1]/span/text(),tr/td [2]/span/text()在相同的tr/td [7]中可用。你給出的xpath示例會給我提供tr中的數據,但是我將如何從相同tr的下拉菜單中選擇選項? –
您可以使用我的xpath獲得'列表
這樣的xpaths處理每個元素。所以最終的xpath查詢將如下所示:// table/tbody/tr [not(contains(@ style,'display:none;'))]/td [1]/span/text()this ..好吧,讓我試試看,感謝您的幫助和輸入。謝謝 –
您也可以嘗試下面的代碼來獲取可見的行數(假設有在只有一個表網頁):
int count = 0;
List<WebElement> rows = driver.findElements(By.xpath("//table//tr"));
for(WebElement row: rows){
if(row.isDisplayed())
count++;
}
System.out.println("The number of rows that are visible is: "+ count);
我試過了,它需要很長時間才能找到表中所有可見的行,大約需要5分鐘來驗證所有1800行的表。然而,@Ruslan輸入工作速度非常快,並提供所需的輸出... :) –
哦!無論如何,這只是一個選擇。而且,我同意@魯斯蘭的有效之一.. :) – Subh
- 1. Selenium Webdriver - 元素不可見
- 2. 從Web表獲取行數 - Selenium WebDriver Java
- 3. 元素不可見 - Selenium - Java Webdriver
- 4. Selenium WebDriver Java - 元素不可見
- 5. python selenium - webdriver等到css_Selector可見
- 6. 用selenium webdriver得到可見的網頁文本
- 7. 在Selenium Webdriver中獲取POST數據
- 8. Selenium Webdriver Youtube不計數意見
- 9. Selenium Webdriver - 獲取表格數據
- 10. 如何獲得在Jenkins上運行的Selenium/WebDriver測試?
- 11. 如何獲得一致的溢出行爲:在表中可見?
- 12. Selenium Webdriver Java:如何從值中的下拉菜單中獲取可見文本?
- 13. Selenium Webdriver跳過表中的行
- 14. 如何點擊Selenium WebDriver中不可見的元素?
- 15. 如何從selenium webdriver中的表數據獲取列表項值?
- 16. Selenium webdriver - 元素可以找到,但不可見?
- 17. 執行'.hover'Javascript在Selenium WebDriver
- 18. Java中的Selenium Firefox Webdriver(運行參數)
- 19. Selenium WebDriver,從表中刪除
- 20. Selenium WebDriver獲得Div類型表的子元素
- 21. Selenium WebDriver - 獲取C#中第一行的表#
- 22. 需要幫助 - Selenium webdriver-點擊可見列表中的元素不起作用
- 23. Selenium WebDriver可以運行迴歸嗎?
- 24. 如何在進行過濾後在Angular JS中獲得可見的表格行
- 25. 在PHP中獲得const可見性
- 26. 如何獲得可見/在可見光中Highcharts
- 27. 在Jenkins中運行Selenium Webdriver時出錯
- 28. 在ssh中運行Python Selenium webdriver
- 29. 在AWS EC2中運行selenium webdriver linux
- 30. HtmlUnitWebdriver在Selenium WebDriver
行如何隱藏?在'tr'中使用'style =「display:none;」''? –
是的魯斯蘭,它具有相同的風格,你提到(class =「row」style =「display:none;」)tr –