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

时间:2016-06-07 07:11:41

标签: c# selenium xpath

我正在使用Selenium从表中获取所有文本。

尝试过滤器值以将列表简化为易于操作。所以,我使用这段代码:

else

错误是:

因为如果我使用:

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>

1 个答案:

答案 0 :(得分:1)

您需要使用的是AddRange的{​​{1}}方法。

List

结果是result.AddRange(valuesNew.FindElements(By.XPath("td"))); List<IWebElement>返回一个集合,因此您必须使用FindElements方法添加该集合。

在旁注中,如果您在AddRange,则可以执行此操作。

ReadOnlycollection