【问题标题】:IExplorer automation mouse overIExplorer 自动化鼠标悬停
【发布时间】:2013-05-23 09:50:03
【问题描述】:
通过从 C# 执行 IExplorer 10 自动化,我需要将鼠标移动到给定的 html 元素上,或者在该元素上触发 mouseover 事件。我试过这个:
- 移动鼠标,但即使我可以获取 IE 的窗口坐标,我也无法获取真正的 html 元素坐标,因为总是获取左上角的窗口角。不知道如何计算真实元素在屏幕上的坐标以将鼠标移到它上面。
- 不知道如何以编程方式触发 onmouseover 事件。
欣赏任何想法。谢谢。
我真正需要的是显示一个由 CSS 悬停处理的菜单。
【问题讨论】:
标签:
internet-explorer-10
browser-automation
【解决方案1】:
您可以在浏览器中调用 JavaScript 来触发鼠标悬停事件。
为此,您需要执行以下步骤:
- 使用
ShellWindowsClass 枚举IWebBrowser2 选项卡以找到您要注入的选项卡。
- 从步骤 1 中标签的
Document 属性获取 HTMLDocumentClass 。
- 从上面的
Document 属性中获取IHTMLWindow2 parentWindow。
- 在上面的窗口对象上使用
executeScript方法来执行JavaScript来触发鼠标悬停事件。请记住,executeScript 方法不会返回任何有效值。如果您需要返回一个返回值,那就有点麻烦了。