c# - 如何在c#中使用硒访问li元素的子节点的文本列表
问题描述
访问 li 元素的子节点时出现问题。希望打印出列表中的所有文本(作为网页上的下拉菜单)。但是所有文本都在 a>(第三个 a> 标签)标签下的 li 元素内。
这是我正在尝试使用的 DOM 结构的示例。这是给我的,我没有改变的余地。
<div class="navbar-collapse collapse" id="navbar-mobile">
<ul class="nav navbar-nav">
<li data-ng-show="!vm.inIdentity" class="dropdown width-250
open">
<a href="" class="dropdown-toggle ng-binding" data-
toggle="dropdown" aria-expanded="true">
<i class="icon-database position-left"></i> Select a
repository <span class="caret"></span>
</a>
<ul class="dropdown-menu width-250 overflow-auto"
style="max-height: 500px">
<li class="dropdown-header">Repositories</li>
<!-- ngRepeat: repository in vm.repositories --><li
data-ng-repeat="repository in vm.repositories"
class="ng-scope" style="">
<a href="" data-ng-
click="vm.selectRepository(repository)"
class="ng-
binding"><i class="icon-database4"></i> **Akzo
Nobel**</a>
</li><!-- end ngRepeat: repository in vm.repositories
--><li data-ng-repeat="repository in
vm.repositories" class="ng-scope">
<a href="" data-ng-
click="vm.selectRepository(repository)"
class="ng-binding"><i class="icon-database4"></i>
AltAir Paramount</a>
</li><!-- end ngRepeat: repository in vm.repositories
-->
IWebElement dropdown = driver.FindElement(By.XPath("//*
[@id='navbar-mobile']/ul[1]/li[1]/ul/li[2]/a"));
Console.WriteLine(dropdown.Text);
IList <IWebElement> ele =
dropdown.FindElements(By.XPath("//li"));
foreach (var li in ele)
{
Debug.WriteLine(li.Text);
}//end foreach loop
我期待这些值打印出来。“Akzo Nobel”、“AltAir Paramount”等值位于 li 元素和 a> 标签下。但由于某种原因,我只能在调试器窗口中看到“选择存储库”的文本。
解决方案
推荐阅读
- node.js - 如果属性具有特定值,有没有办法找到并返回它?
- python - 用户按下赞按钮时不会突出显示,也不会显示赞数 ..in django。你能建议我任何解决方案吗
- r - 卷曲错误:操作在 1000 毫秒后超时
- machine-learning - 关于每周监督学习的论文回顾
- c# - 我正在从光标进行光线投射,请帮助 unity 3d
- java - 如何制作一个所有行都可以用作键的java表?
- r - 循环变异R中的多列
- mysql - MySQL中交叉检查用户行的外键约束
- php - Laravel 多关系数据获取
- java - 管理器应用程序上的 Tomcat 8 403 访问被拒绝(使用 Docker 设置)