Java 使用Selenium IEDriverServer输入非常慢的文本?
运行Selenium IEDriverServer 3.5.1 32位,我在Internet Explorer v11中遇到非常非常慢的文本输入。奇怪的是,如果我切换到IEDriverServer 3.4.0(也是32位),它并不慢,但总体测试执行速度有所下降(奇怪的是,这个问题几天前才出现。以前我使用的是3.5.1,没有任何问题)。有人找到了这个问题的合法解决方案吗?以下是我的webdriver定义:Java 使用Selenium IEDriverServer输入非常慢的文本?,java,selenium,selenium-webdriver,selenium-iedriver,iedriverserver,Java,Selenium,Selenium Webdriver,Selenium Iedriver,Iedriverserver,运行Selenium IEDriverServer 3.5.1 32位,我在Internet Explorer v11中遇到非常非常慢的文本输入。奇怪的是,如果我切换到IEDriverServer 3.4.0(也是32位),它并不慢,但总体测试执行速度有所下降(奇怪的是,这个问题几天前才出现。以前我使用的是3.5.1,没有任何问题)。有人找到了这个问题的合法解决方案吗?以下是我的webdriver定义: DesiredCapabilitiescaps = DesiredCapabilities.
DesiredCapabilitiescaps = DesiredCapabilities.internetExplorer();
caps.setBrowserName("internet explorer");
caps.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, false);
caps.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
caps.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);
caps.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
caps.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
caps.setJavascriptEnabled(true);
此外,关于IE本身,我有以下设置:
- 所有安全区域都设置为打开时的保护模式
- 高级>安全>启用增强保护模式的64位进程未选中
- 未选中连接>Lan设置>自动检测设置
每次我在谷歌上搜索这个问题,我都能找到一年前的答案,通常与Selenium 2.53或类似的东西有关。最近有人经历过这种情况吗?如果有,它是如何修复的?谢谢 在IE中使用64位和32位进程的混合模式时,会出现键入速度慢的问题
假设您使用64位版本的驱动程序:
解决方案是使用32位版本的IEDriverServer 3.5.1。在IE中,sendKeys的性能不好,因此在我的例子中,我创建了以下解决方案来设置元素的文本:
@Override
public boolean setValue(String text) {
logger.info(String.format("<%s(%s) set value '%s'", el.getTagName(), el.getText(), text));
try {
JavascriptExecutor js = (JavascriptExecutor) webElementFinder.getDriver();
js.executeScript("arguments[0].value = arguments[1];",
waitForElementVisible(config.getBrowserElementFinderTimeout()), text);
return true;
} catch (TimeoutException e) {
logger.warn(e.getMessage());
logger.warn(
String.format("<%s(%s) Element not visible within timeout period", el.getTagName(), el.getText()));
return false;
}
}
@覆盖
公共布尔设置值(字符串文本){
logger.info(String.format(“您必须使用32位IEdriver
请通过此链接了解更多信息:
不,我使用的是32位版本。我想补充一点,不知道我怎么会错过它。你的系统上安装了什么样的Internet Explorer?我运行的是IE11 32位或64位版本?操作系统是64位的,但据我所知,IE几乎总是使用32位版本的应用程序。我不知道具体是什么确切地说是哪个版本启动的,但两个版本都已安装。我使用的是32位IEDriver