我试过这个
StartCopyAsync
以下是HTML代码:
List <WebElement> navlist = driver.findElements(By.cssSelector("d-md-down-none nav navbar-nav mr-auto"));
navlist.get(0).findElement(By.linkText("Sources")).click();
尝试我的示例时出错:
<ul class="d-md-down-none nav navbar-nav mr-auto">
<li class="px-3 nav-item">
<a aria-disabled="false" href="#/sources" class="nav-link">Sources</a>
</li>
<li class="px-3 nav-item">
<a aria-disabled="false" href="#/alerts" class="nav-link">Alerts</a>
</li>
</ul>
如何在导航栏中单击并从selenium java中的列表中选择项目
答案 0 :(得分:0)
根据您提供的HTML和代码试用版,您可以选择并使用以下代码块从列表中单击文本为来源的项目:
List <WebElement> navlist = driver.findElements(By.cssSelector("ul.d-md-down-none.nav.navbar-nav.mr-auto li>a"));
for(WebElement elem:navlist)
if(elem.getAttribute("innerHTML").contains("Sources"))
{
elem.click();
break;
}
答案 1 :(得分:0)
您收到错误是因为您的CSS选择器不正确。您已列出了类名,但类之前应为.
,例如.className
。代码的等价物是
List <WebElement> navlist = driver.findElements(By.cssSelector(".d-md-down-none.nav.navbar-nav.mr-auto"));
navlist.get(0).findElement(By.linkText("Sources")).click();
你有没有尝试过更简单的
driver.findElement(By.linkText("Sources")).click();
根据页面上有多少其他“来源”链接及其位置,它可能会也可能不会起作用。