我正在开发一个自动化脚本,其中的一部分需要我将鼠标悬停在导航栏上才能显示下拉菜单。该脚本是使用NodeJS编写的,并且使用的浏览器是Internet Explorer。
导航源代码
...
<ul class=navigation " data-dojo-attach-point="nonmMenu ">
<li class= "dropdown ">
<a href="javascript:void(0) "><i class="fa fa-clipboard nav-icon " aria-hidden="true "></i><span>Accounts</span></a>
<div class='fulldrop i3">..</div>
</li>
</ul>
...
NodeJS代码:
let xPathButton = "//span[text()='Accounts']";
//Find button to hover over
let buttonWithDropDown = driver.findElement(By.xpath(xPathButton));
//Hover
driver.actions().mouseMove(buttonWithDropDown).perform();
但是,这不起作用。最终目标是在出现下拉菜单后单击链接,我尝试这样做,但是由于该元素不可见,因此出现了异常ElementNotInteractableError: Cannot click on element
。我希望能有一些正确的指导方针来解决这个问题。
更新: 一直在看这个锚标签中的aria-hidden属性是否可能导致硒驱动器无法检测到元素?
请注意,不能更改浏览器。
答案 0 :(得分:1)
尝试将鼠标悬停在a或li元素上。您也可以尝试点击:
By.xpath("//a[span[.='Accounts']]")
By.xpath("//li[.//span[.='Accounts']]")
您可以尝试打开菜单,而无需使用javascript打开菜单:
executeJavaScript("arguments[0].click();", yourDropdownMenuElement);