我正在使用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>
答案 0 :(得分:1)
您需要使用的是AddRange
的{{1}}方法。
List
结果是result.AddRange(valuesNew.FindElements(By.XPath("td")));
,List<IWebElement>
返回一个集合,因此您必须使用FindElements
方法添加该集合。
在旁注中,如果您在AddRange
,则可以执行此操作。
ReadOnlycollection