Firefox 和 chrome 运行良好,但使用 IE 11,发送键非常慢。你如何解决这个问题?
我的环境:
- 运行 IE 11.103
- 操作系统 Windows 10
- 我在 java 1.8 中使用 eclipse(Version: Neon Release (4.6.0))
- 硒 Webdriver 3.0.0
Firefox 和 chrome 运行良好,但使用 IE 11,发送键非常慢。你如何解决这个问题?
我的环境:
在我的环境中:WIN 10、selenium 3.4、IE64 我设置:Internet 选项 → 高级 → 安全 → ☑ 为增强保护模式启用 64 位进程
我通过下载和使用 32 位修复它。帮助我解决的线程
https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/5116
经过大量的在线阅读和实验
我必须将路径设置为指向我的网络驱动程序右键单击我的计算机,然后选择“高级系统设置”,然后单击“环境变量”,然后选择“路径”并单击编辑。现在将路径添加到您的 IEDriverServer.exe,例如我的路径是“C:\eclipse\webdriver\IEDriverServer.exe”。我建议重新启动你的电脑
必须运行 32 位 IE WEB 驱动 http://selenium-release.storage.googleapis.com/index.html 我下载的是 3.0
现在,这是让我的世界变得与众不同的黄金部分。将您的 IE 设置为以管理员身份运行。右键单击IE快捷方式并选择选项,在快捷方式选项卡下单击高级按钮,然后选中复选框“以管理员身份运行”。现在重启IE
打开 IE 后,依次转到工具、Internet 选项和安全选项卡。我已取消选中本地 Intranet 和受信任站点上的“启用保护模式”。重启 IE
我使用了以下所需的功能(我在互联网上找到了这个)
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING,false);
dc.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, false);
dc.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true);
dc.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
dc.setJavascriptEnabled(true);
WebDriver driver = new InternetExplorerDriver(dc);
这在我的环境中有效,请发布对您有用的内容
注意:在此之后我正在试验 64 位驱动程序。如果我制作了(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS,true),那么它可以正常工作。在 junit 中,断言失败,但我能够在第一页使用发送键。
我一直在使用 selenium 库开发 IE11:selenium-server-standalone-3.141.59.jar 并有以下发现:
在 Window 10 64 位版本 IE 11 版本 11.431.16299,更新版本 11.0.65(KB4103765) 它可以与 IEDriverServer.exe(64 位版本)一起正常工作,无需额外设置功能。可以输入句号(1 秒内输入 6 个字符)
在 Window 10 64 位版本上 IE 11 版本 11.15.16299.0 更新版本 11.0.47 KB4040685 使用 IEDriverServer.exe(64 位版本)运行速度很慢要输入 6 个字符的字符串,每个字符需要 3-4 秒才能完成。为了解决这个问题,我测试的以下编码对我来说很好。
InternetExplorerOptions options = new InternetExplorerOptions();
options.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
在 Window 7 Professional 32 位版本 IE 11 版本 11.0.9600.18499,更新版本 11.0.36(KB3191495) 与 IEDriverServer.exe(32 位版本)一起工作正常。键入时间是可以接受的。(1秒内6个字符)无需额外设置
更好的解决方案:
请注意:在执行此解决方案之前,我已经重置了所有 IE 设置,同样在我的第一个答案中,我运行的是旧版本的 IE 驱动程序。
下载最新的 IE 驱动 - 我已经下载了 3.4 32 位版本(我测试时 64 位仍然很慢) http://selenium-release.storage.googleapis.com/index.html?path=3.4/
您将需要更改您的 IE 设置 2.1 转到工具 -> Internet 选项 -> 安全。将所有区域设置为相同的保护模式,启用或禁用都无关紧要。像这样: http ://seleniumquery.github.io/images/ie-driver-protected-mode-disable.png
现在在你的代码中添加这个:
public static void runInternetExplorer() {
System.setProperty("webdriver.ie.driver", "C:\\eclipse\\webdriver\\IE\\IEDriverServer.exe");
WebDriver webDriver = new InternetExplorerDriver();
new browser (webDriver);
}
当我运行它时,它运行得非常好。如果这个解决方案不起作用,我已经留下了我之前的答案。
在 IE11 中,在重放测试时在文本字段(发送键)中键入数据太慢。
以下是系统信息。IEDriver – 64 位,操作系统 – windows7 64 位,IE10 – 64 位
注意:我遇到了同样的问题,我的问题已解决重新安装IEDriver – 32 位,它与 32 位 IE 驱动程序一起工作正常。
发行说明 v2.47.0.1:
(https://raw.githubusercontent.com/SeleniumHQ/selenium/master/cpp/iedriverserver/CHANGELOG)
所以你应该使用 32 位或内容渲染需要更改为 64 位
我改为 IEDriver 32 位(从 64 位)为我解决了这个问题。IE 11、Windows 7、Selenium 3.4。
为使用 Python 3.6 和 Selenium 3.14 的开发人员发布此解决方案。
在我的情况下,相关的 IE 设置被组策略锁定,因此任何需要更改 IE 设置的解决方案都是不可行的。
在我的特定环境(Windows 7 x64、IE 11.0.9600 锁定、Python 3.6、Selenium 3.14.1)中,只有 1 个选项设置需要更改以修复慢速发送键:
from selenium import webdriver
from selenium.webdriver.ie.options import Options
opts = Options()
opts.require_window_focus = True
driver = webdriver.Ie(options=opts)
注释ruby
和webdiriver
版本3+
文档中有带有 IE 参数的示例native_events
,即使它是在控制台开始时编写的。
实际上正确的参数名称是nativeEvent
.
设置nativeEvent = false
,
webdriver 将使用快速 JS 代替慢速原生点击模拟。
IE 11 在 Windows 8.1 VM 上运行缓慢,我正在运行 IEDriverServer.exe 3.5.1.0 (x32),我通过更改为 IEDriverServer.exe 3.5.1.0 (x64) 进行了修复。注意:3.4.0.0 没有解决这个问题。nativeEvents: false 没有改变任何东西。驱动程序在我的 PATH 中,不知道如果不是会发生什么。