node.js - Selenium 自动化 - 悬停下拉菜单不起作用
问题描述
我正在开发一个自动化脚本,其中一部分需要我将鼠标悬停在导航栏上以显示下拉菜单。该脚本是使用 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>
...
节点代码:
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 属性是否会导致硒驱动程序无法检测到该元素?
请注意,更改浏览器不是一种选择。
解决方案
尝试将鼠标悬停在 a 或 li 元素上。您也可以尝试点击:
By.xpath("//a[span[.='Accounts']]")
By.xpath("//li[.//span[.='Accounts']]")
您可以尝试在不使用 javascript 打开菜单的情况下打开菜单:
executeJavaScript("arguments[0].click();", yourDropdownMenuElement);
推荐阅读
- google-cloud-platform - 我可以在单个策略中授予服务帐户对多个存储桶的访问权限吗?
- python - 如何更改此代码上呈现的数字
- python - 我正在尝试使用 Python 和 Outlook 发送邮件,但在 mail.Send() 处出现错误
- c - Windows / msvc 上的叮当声:为什么在 FE_UPWARD printf("%.1f\n", 0.0) 下打印 0.1 而不是 0.0?
- android - 如何处理范围存储的向后兼容性?
- apache-spark - 使用 podTemplate 将 configMap 挂载到 spark 驱动程序
- java - 如何让java命令运行?
- javascript - 从 HTML DOM 元素中获取切换组件的值
- ios - ios上的Flutter NFC Manager问题
- python - 基于多个条件的新熊猫列