c# - 打印 IReadOnlyCollection元素不显示任何内容
问题描述
我有一个带有 IWebElement 的 IReadOnlyCollection 列表。当我遍历每个元素并尝试显示每个元素时,它会显示空白文本或“元素(id = #some random id)”作为输出。如何将元素显示为文本?
预期的输出应该是这样的:
往返
单程
有一个类似的问题,但没有帮助:如何通过索引访问 IReadOnlyCollection 的元素?
尝试了这些选项,
Console.WriteLine(list.ElementAt(1));
Console.WriteLine(list.ElementAt(1).Text);
Console.WriteLine(list.ElementAt(1).ToString());
以下是供参考的代码:
IReadOnlyCollection<IWebElement> list = Browser.Driver.FindElements(By.Name("tripType"));
for (int i = 0; i < list.count; i++)
{
Console.WriteLine(list.ElementAt(i));
Console.WriteLine(list.ElementAt(i).Text);
Console.WriteLine(list.ElementAt(i).ToString());
}
这是HTML:
<font face="Arial, Helvetica, sans-serif" size="2">
<input type="radio" name="tripType" value="roundtrip" checked="">
Round Trip
<input type="radio" name="tripType" value="oneway">
One Way</font>
解决方案
我认为您必须在循环中使用 GetAttribute,因为您的 HTML 中没有文本:
IReadOnlyCollection<IWebElement> list = Browser.Driver.FindElements(By.Name("tripType"));
for (int i = 0; i < list.count; i++)
{
Console.WriteLine(list.ElementAt(i).GetAttribute("value");
}
我会使用的一项改进是 foreach 循环
IReadOnlyCollection<IWebElement> list = Browser.Driver.FindElements(By.Name("tripType"));
Foreach(IWebElement element in list){
Console.WriteLine(element.GetAttribute("value");
}
推荐阅读
- python - 如何用 pandas DataFrame 中的共享列值替换某些行?
- javascript - 如何使用javascript在动画中换行?
- google-sheets - 谷歌表格脚本不会设置正在编辑的单元格的值谷歌脚本
- c - 尝试访问复杂结构时出现分段错误
- c# - 如何在没有任何 nuspec 文件的情况下将多个项目的产品打包到一个 nuget 中?
- python - 如何在 Python Scraping 中使用 beautifulsoup 和 selenium 识别类名或 id
- apache-spark - 从 kafka 主题中读取数据并使用 spark tempview 进行聚合?
- reactjs - 如何将 img 存储到 MongoDB 中?
- javascript - 如何在 DataTables 中使用 HTML 中的固定下拉菜单?
- c - 为什么在 OR 上使用 XOR?