以编程方式触发onMouseOver()事件

时间:2018-12-28 23:21:26

标签: javascript selenium browser-automation

我正在尝试使我们的电子邮件安全协议中涉及的一些繁琐任务自动化。不幸的是,我们的电子邮件安全提供商的API不包含90%所需功能的端点。因此,我选择采用Selenium来实现某些浏览器自动化。麻烦的是,网页使用iFrame,这使Selenium变得不那么直观。

到目前为止,我正在尝试从一小段已执行的JS调用元素的onMouseOver事件处理程序。但是,我一直很沮丧地失败了。无论如何,我还没有找到可以模拟鼠标指针在元素上移动的

这是到目前为止我尝试过的一些无效的方法:

document.mcFrame1.document.querySelector("#menu_0").mouseover()

var eventMouseOver = new Event('pointerover'); document.mcFrame1.document.querySelector("#menu_0").dispatchEvent(eventMouseOver)

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

麻烦的是,网页使用iFrame,这使Selenium变得不那么直观。

尝试使用 kantu selenium ide以及免费的xmodule插件。此插件添加了xclicksimulate real user mouse clicks和xmove命令。这些命令无法在浏览器DOM上运行,因此它们可以很好地触发iframe,frame和canvas元素内的鼠标事件。

要以编程方式触发onMouseOver()事件,请使用:

xmove | (image of place to click) | #move

此处的iframe示例宏:automate embedded video

kantu也有一个command line,因此您可以在代码中使用它。