簡體   English   中英

如何將Selenium中的IWebElement添加到C#上的List <>()?

[英]How to add IWebElement in Selenium to List<>() on C#?

我正在使用Selenium從表中獲取所有文本。

嘗試使用過濾器值來減少列表,以便於操作。 因此,我使用以下代碼:

IWebElement baseTable = browser.FindElementById("column2");
ReadOnlyCollection<IWebElement> rowsInTable = baseTable.FindElements(By.XPath("id('oTableContainer_D')/table/tbody/tr"));

List<IWebElement> result;
foreach (IWebElement valuesNew in rowsInTable )
{
    if (valuesNew.FindElements(By.XPath("td")).ToString() == "")
        return;

    if (valuesNew.FindElements(By.XPath("td")).Count == 10)
    {
        result.Add(valuesNew.FindElements(By.XPath("td").ToString()));
    }
    else
    {
        continue;
    }
}

錯誤是:

因為如果我使用:

ReadOnlyCollection<IWebElement> result; 此結果沒有任何方法,例如“ Add到列表”。

有什么方法可以解決這個問題? 謝謝大家。

更新:

我想獲取result變量,因為我得到的所有項目都包含<tr>

因此,我改為。

.....
result.Add(valuesNew).
.....

您需要使用List AddRange方法。

result.AddRange(valuesNew.FindElements(By.XPath("td")));

結果是List<IWebElement>FindElements返回一個集合,因此您必須使用AddRange方法添加該集合。

在旁注中,如果您處於ReadOnlycollection ,則可以執行此操作。

var  readOnlyelements = new ReadOnlyCollection<IWebElement>(result);

暫無
暫無

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

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