[英]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.