想要点击第二个ul中的第三个li:
<ul id="select-123" style="width: 1180px; display: none;">
<li class="" style="display:none;">
<li class="">
<li class="">
<li class="">
</ul>
<ul id="select-123" style="width: 1180px; display: none;">
<li class="" style="display:none;">
<li class="">
<li class="">
<li class="">
</ul>
我正在尝试的代码是从第二个ul中选择第三个li,它不起作用:
driver.findElements(By.css(ul[id*='select-123'])).then(function(elems) {
elems[2].then(function(lis) {
driver.findElement(By.css("ul[id*='select-123'] li:nth-child(3)")).click();
});
});
答案 0 :(得分:1)
尝试使用XPath
:
driver.findElement(By.xpath('//ul[2]/li[3]'))
答案 1 :(得分:1)
除了@Andersson的答案之外,你还犯了两个ID的错误。在HTML中,IDs should be unique。简单地拥有一个唯一的ID就可以避免这种情况,但如果你无法控制HTML,而其他人编写了错误的HTML,那么Andersson的XPath解决方案就会很好。
答案 2 :(得分:1)
实际上你是在列表中找到元素,然后你在列表中使用第二个ul
元素,但是当你要找到第二个ul
元素的子元素时,你提供{{1这将从整个页面中找到,因此您需要在第二个driver.findElement
元素上下文中找到元素,如下所示: -
ul
希望它有效.. :)