使用selenium webdriver提取网站上显示的动态表格

时间:2017-04-18 18:23:29

标签: javascript ajax selenium

我正在尝试解析一个通过javascript-ajax调用加载表内容的网站..

function buildTable() {
        // render spinner over dataset summary table
        var overlay = document.getElementById("summary");
        enableOverlay(overlay, true, true, "30px");
        // request dataset summary from server
        $.ajax({
          url: "/ProteoSAFe/MassiveServlet",
          data: { "function":"", "mid":dataset_name },
            type: "GET",
            cache: false,
            complete: function(data) {
               var stats = JSON.parse(data.responseText);
               var filesize = document.getElementById("filesize");
               filesize.innerHTML = stats.filesize;
              }

在HTML中:

                <table>
                <table>
                <tr>
                    <td>Number of Files:</td>
                    <td id="filecount"></td>
                </tr>
                <tr>
                    <td>Total Size:</td>
                    <td id="filesize"></td>
                </tr>
                <tr id="spectra_row" style="display:hidden">
                    <td>Spectra:</td>
                    <td id="spectra"></td>
                </tr>
                <tr>
                    <td>Subscribers:</td>
                    <td id="subscribers"></td>
                </tr>

我在selenium中使用以下代码:

 List<WebElement> tables = div.findElements(By.tagName("table"));
 wait.until(ExpectedConditions.visibilityOfAllElements(tables));
  for (WebElement table : tables) {
     List<WebElement> allRows = table.findElements(By.tagName("tr"));
       for (WebElement row : allRows) {
         List<WebElement> cells = row.findElements(By.tagName("td"));
                          for (WebElement cell : cells) { System.out.println("content >>   " + cell.getText());
                          }
                      }
         }

我的问题是:它只提取几个表格单元格。我想提取所有表格的内容。 有没有其他方法来提取表格内容。请指教。

0 个答案:

没有答案