IE的selenium悬停元素

IE的selenium悬停元素,第1张

IE的selenium悬停元素

由于IE驱动程序的一个称为“永久悬停”的功能,该元素闪烁。此功能的价值可疑,但是由于IE(浏览器,而不是驱动程序)在使用API
时响应

WM_MOUSEMOVE
消息的大脑失效方式,因此此功能是必需的
SendMessage

您有几种选择。您可以使用以下代码关闭永久性悬停:

InternetExplorerOptions options = new InternetExplorerOptions();options.EnablePersistentHover = false;IWebDriver driver = new InternetExplorerDriver(options);

请注意,尽管这将使您在尝试悬停时受到物理鼠标光标在屏幕上的位置的影响。如果那是不可接受的,则可以采用其他两种方法。首先,您可以关闭所谓的“本机事件”,这将导致驱动程序仅依赖于合成的Javascript事件。由于仅依靠Javascript来合成鼠标事件,因此这种方法有其自身的陷阱。

InternetExplorerOptions options = new InternetExplorerOptions();options.EnableNativeEvents = false;IWebDriver driver = new InternetExplorerDriver(options);

最后,您可以从使用默认的

SendMessage
Windows API
迁移到使用更正确的
SendInput
API的代码。这是通过
RequireWindowFocus
属性完成的。它的缺点是鼠标输入是在系统中以非常低的级别注入的,这要求IE窗口成为系统上的前台窗口。

InternetExplorerOptions options = new InternetExplorerOptions();options.RequireWindowFocus = true;IWebDriver driver = new InternetExplorerDriver(options);

最后一点,请不要尝试一次设置所有这些属性。选择一种方法并坚持下去。它们中的几个是互斥的,并且它们之间的交互是不确定的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5662439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存