Selenium Chrome webdriver Java:如何选择第n个列表项?
我有以下内容:Selenium Chrome webdriver Java:如何选择第n个列表项?,selenium,selenium-webdriver,selenium-chromedriver,Selenium,Selenium Webdriver,Selenium Chromedriver,我有以下内容: <ol class="day-tabs"> <li class="current"><a href="date1.html">a</a></li> <li class=""><a href="date2.html">b</a></li> <li class=""><a href="date3.html">c</a>
<ol class="day-tabs">
<li class="current"><a href="date1.html">a</a></li>
<li class=""><a href="date2.html">b</a></li>
<li class=""><a href="date3.html">c</a></li>
</ol>
然后:
ArrayList<WebElement> listItems = new ArrayList<>(days_tabs.findElements(By.tagName("li")));
我没有看到第n项被选中
你能给个建议吗
谢谢您可能需要通过selenium API而不是JavaScript执行实际的单击操作:
listItems.get(n).click();
如下文所述,两者之间存在一些实质性差异:
元素,可以直接使用第n个元素的选择器
XPath:
WebElement-ntheelement=driver.findElement(By.xpath(“ol[@class='day-tabs']]]/li[n]”);
n元素。单击();
CSS选择器:
WebElement-ntheelement=driver.findElement(By.cssSelector(“ol.day-tabs>li:n类型)”);
n元素。单击();
为什么在XPath
标题下有一个cssSelector
?您的XPath缺少开头的/
<代码>ol[日选项卡]应该是CSS选择器中的ol.day选项卡
。另外,这两种方法都不起作用,因为您将“n”作为字符串,而不是传入变量n
。我已经修复了代码。当我试图格式化代码时犯了一个错误,然后我在编辑器中把它弄混了。如果你试图自动化一个用户场景,你应该(通常)更喜欢Selenium click而不是JSE click,因为JSE可以单击用户不喜欢的各种不可见元素,等等。
JavascriptExecutor ex = (JavascriptExecutor)chromeWebDriver;
ex.executeScript("arguments[0].click();", listItems.get(n));
listItems.get(n).click();