Selenium Chrome webdriver Java:如何选择第n个列表项?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium Chrome webdriver Java:如何选择第n个列表项?相关的知识,希望对你有一定的参考价值。
我有以下元素:
<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>
如您所见,只有第一个列表项具有类定义。我需要的是转到列表中的第n项。
所以这不是一个问题:
WebElement days_tabs = chromeWebDriver.findElement(By.className("day-tabs"));
然后:
ArrayList<WebElement> listItems = new ArrayList<>(days_tabs.findElements(By.tagName("li")));
但是当我试着
javascriptExecutor ex = (JavascriptExecutor)chromeWebDriver;
ex.executeScript("arguments[0].click();", listItems.get(n));
我没有看到第n个项目被选中。
你能告诉我吗?
谢谢
答案
您可能需要通过selenium API进行实际点击,而不是通过JavaScript:
listItems.get(n).click();
如下所述,两者之间存在一些实质性差异:
另一答案
如果您没有尝试访问所有<li>
元素,则可以直接使用第n个元素的选择器。
XPath的:
WebElement nthElement = driver.findElement(By.xpath("ol[@class='day-tabs']/li[n]"));
nthElement.click();
CSS选择器:
WebElement nthElement = driver.findElement(By.cssSelector("ol.day-tabs > li:nth-of-type(n)"));
nthElement.click();
以上是关于Selenium Chrome webdriver Java:如何选择第n个列表项?的主要内容,如果未能解决你的问题,请参考以下文章
当窗口在 Chrome 87 的后台时,Webdriver.io/Selenium 测试失败
Selenium.WebDriver - 当我尝试在 Chrome 中运行测试时出现错误
Python Selenium Chrome Webdriver [重复]
使用 Java 使用 Selenium WebDriver 加载 Chrome 配置文件