簡體   English   中英

使用 Selenium WebDriver 從動態表中獲取所有行

[英]Get all rows from a dynamic table using Selenium WebDriver

我正在自動化網頁編輯任務。 該網頁在框架內有一個動態表格。 每行有五列。 動態表是指行在網頁上動態加載。 在任何給定點,加載的行數不超過 22。我可以通過移動滾動條訪問更多行。 表中的總行數約為 450,我需要讀取所有行以修改第 2 列中的一些值。我目前正在使用 Selenium WebDriver 嘗試將行讀入列表,但只能接收 22 行在任何給定的時間。 這是我嘗試過的:

        IWebElement tableElement = Driver.driverInstance.FindElement(By.XPath(*tableXPath*));
        var rowList = tableElement.FindElements(By.TagName("tr"));
        Console.WriteLine("Table rows: " + rowList.Count());

有什么方法可以將整個表(450 行)讀入數據結構,以便對它們進行內存處理?

這是 HTML 部分的樣子,通過 FireBug:

    <table id="ctl00_MPH_HyperGrid1ContentTable" class="HyperGrid" style="table-layout: fixed; width: 100%;">
<colgroup>
<tbody>
    <tr id="ctl00_MPH_HyperGrid1_10" class="" style="height: 37px;">
    <tr id="ctl00_MPH_HyperGrid1_11" class="alt" style="height: 37px;">
    <tr id="ctl00_MPH_HyperGrid1_12" class="" style="height: 37px;">
        <td class="checkable">
        <td class="">AntelopeEB</td>
        <td class="">CA - Antelope EB</td>
        <td class="">SmarterMail</td>
        <td class="">User</td>
        <td class="">
        <td class="loadingCell" colspan="5" style="display:none;">Loading...</td>
    </tr>
    <tr id="ctl00_MPH_HyperGrid1_13" class="alt" style="height: 37px;">
    <tr id="ctl00_MPH_HyperGrid1_14" class="" style="height: 37px;">

“在任何給定點,加載的行數不超過 22”

這意味着 selenium 只能訪問 22 行並存儲到 LIST 數據結構中,因為瀏覽器只有 22 行。

你需要通過SELENIUM觸發一個事件,讓剩余的數據出現在瀏覽器中,這樣selenium才能檢索到接下來的22個標簽。

您已經提到您可以通過滾動訪問更多行,包括一個可以觸發滾動事件的函數。 利用 Thread.sleep(millisecs); 如果頁面內容加載緩慢。 如果您需要更多信息,請告訴我,也請分享代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM