表的大小,size()返回0

时间:2015-03-10 13:28:33

标签: java selenium size

您好我正试图以这种方式获取表格的行数:

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>
          .....

2 个答案:

答案 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")