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