您好我正试图以这种方式获取表格的行数:
int rows = findElements(By.xpath("//div[@class='communications-table ohim-table dataTable']/tbody/tr")).size();
但它返回0行。我的桌子上有排,有什么想法吗?感谢。
HTML:
<div class="box-content detailsBoxBody">
<div id="trademarksCommunicationsTable">
<div id="DataTables_Table_5_wrapper" class="dataTables_wrapper" role="grid">
<div class="datatables-top full-width">
<div id="DataTables_Table_5_processing" class="dataTables_processing" style="visibility: hidden;">Processing...</div>
<table id="DataTables_Table_5" class="communications-table ohim-table dataTable" aria-describedby="DataTables_Table_5_info">
<thead>
<tbody role="alert" aria-live="polite" aria-relevant="all">
<tr class="odd">
<tr class="even">
<tr class="odd">
<tr class="even">
<tr class="odd">
<tr class="even">
<tr class="odd">
<tr class="even">
<tr class="odd">
<tr class="even">
</tbody>
</table>
.....
答案 0 :(得分:2)
我认为等待也是一个问题。尝试使用explicit
等待。并且,请注意我正在使用css
By byCss = By.cssSelector(".communications-table.ohim-table.dataTable tr");
List<WebElements> elements = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfAllElementsLocatedBy(byCss));
elements.size();
答案 1 :(得分:1)
你的XPath是不可能的:
By.xpath("//div[@class='communications-table ohim-table dataTable']/tbody/tr")
总会找到table
!
尝试:
By.xpath("//table[@id='DataTables_Table_5']//tr")