我有一个这样的下拉菜单。使用selenium,我需要将鼠标移动到菜单项“文档”,然后单击其中的选项“应用程序配置”。鼠标悬停工作正常。但我无法单击选项元素“应用程序配置”。
<li class="current">
<a href="/docs">Documentation</a>
<ul class="list-unstyled">
<li>
<a href="/docs">API Reference</a>
</li>
<li><a href="/docs/api/oauth2">OAuth 2.0 Guide</a></li>
<li class="current"><a href="/docs/configuration">App Configuration</a></li>
<li><a href="/docs/guidelines">Tech Guidelines</a></li>
<li><a href="/docs/best-practices">Best Practices</a></li>
</ul>
</li>
<li class="">
<a href="/tools">Tools</a>
<ul class="list-unstyled">
<li><a href="/tools/quickstart">Quick Start</a></li>
<li><a href="/tools/testing">Testing</a></li>
<li><a href="/tools/devbox">Developer STB</a></li>
<li><a href="/tools/reference">Reference Apps</a></li>
</ul>
</li>
<li>
<a href="/updates">Updates</a>
</li>
当我将鼠标悬停在任何菜单链接(如“文档”或“工具”)上时,<li class=""> becomes <li class="open">
当我尝试使用下面的代码鼠标悬停到文档链接是happend!!和鼠标指针移动到'应用程序配置'选项。但点击事件没有发生。这怎么可能
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("//a[@href = '/docs'"));
action.moveToElement(we).build.perform();
WebElement config = webdriver.findElement(By.xpath("(//a[contains(@href,'/docs/configuration')])[1]));
action.moveToElement(config).click().build.perform();
我需要单击应用程序配置选项
2条答案
按热度按时间cotxawn71#
不需要在xpath中传递索引,在html中href是唯一的。所以你可以直接给予xpath。比如:
bwntbbo32#
直接点击WebElement调用(不需要
Actions
):我可以使用selenium-java-2.44.0(尽管“/docs/configuration”在我的设置中不是有效的目标)。