访问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
我希望这些值能打印出来。位于li元素和a>标记下的值,例如“ Akzo Nobel”,“ AltAir Paramount”等。但是由于某种原因,我只能在调试器窗口中看到“选择存储库”的文本。