硒自动化-悬停时下拉菜单不起作用

时间:2018-08-10 16:41:23

标签: node.js selenium internet-explorer selenium-webdriver automation

我正在开发一个自动化脚本,其中的一部分需要我将鼠标悬停在导航栏上才能显示下拉菜单。该脚本是使用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属性是否可能导致硒驱动器无法检测到元素?

请注意,不能更改浏览器。

1 个答案:

答案 0 :(得分:1)

尝试将鼠标悬停在a或li元素上。您也可以尝试点击:

By.xpath("//a[span[.='Accounts']]")
By.xpath("//li[.//span[.='Accounts']]")

您可以尝试打开菜单,而无需使用javascript打开菜单:

executeJavaScript("arguments[0].click();", yourDropdownMenuElement);