我有以下内容:
<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个项目。
你能建议吗?
谢谢
答案 0 :(得分:2)
您可能需要通过硒API而不是通过JavaScript进行实际点击 :
listItems.get(n).click();
此处概述了两者之间的实质性差异:
答案 1 :(得分:0)
如果您不尝试访问所有<li>
元素,则可以直接将选择器用于第n个元素。
XPath:
WebElement nthElement = driver.findElement(By.xpath("ol[@class='day-tabs']/li[n]"));
nthElement.click();
CSS SElector:
WebElement nthElement = driver.findElement(By.cssSelector("ol.day-tabs > li:nth-of-type(n)"));
nthElement.click();