c# - 使用 Linq 将网页表解析为列表
问题描述
我有这段代码可以正常工作:
IList<IWebElement> allElement = driver.FindElements(By.XPath("//*[@id=\"users_table\"]"));
foreach (IWebElement element in allElement)
{
string cellText = element.Text;
Console.WriteLine(cellText);
}
如何将值写入列表而不是控制台?我找到了一个例子,但就我而言,我没有td
元素。这样做的正确方法是什么?
var HTMLTable = driver.FindElement(By.XPath("//*[@id=\"users_table\"]"))
.FindElements(By.TagName("td"))
.Select(e => e.Text)
.ToList();
编辑:
我努力了:
var HTMLTable = driver.FindElement(By.XPath("//*[@id=\"users_table\"]"))
.Select(e => e.Text)
.ToList();
解决方案
它应该很简单:
var result = driver.FindElements(By.XPath("//*[@id=\"users_table\"]"))
.Select(e => e.Text)
.ToList();
在编辑部分的代码段中,您FindElement
应该返回单个元素而不是集合,就像FindElements
这样。
推荐阅读
- python - 我的界面没有使用 cx_freeze 显示我的日历
- c# - 无法在 google chrome c# 中更新/删除 cookie
- postgresql - 从表中读取唯一数据并以分布式方式对其进行处理
- java - 使用 Exception 来防止使用不需要的参数实例化类是一种好习惯吗
- mongodb - 在 MongoDB 中聚合过去 n 天
- android - 找不到符号getEditText()android
- angular - Mat-Table 排序标题未呈现
- javascript - 如何在反应中从堆叠数组中过滤数组
- firefox - 在 Firefox 中第一次从对象 URL 下载总是失败
- javascript - 我对 Promises 如何解决的理解是否正确?