1、代码获取本地IEDriver
System.setProperty("webdriver.ie.driver", "D:\selenium\selenium\Tools\IEDriver.exe");
2、无法打开IE
org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer. Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)
方法一: 将test中 复制代码
WebDriver driver = new InternetExplorerDriver(); 换成 复制代码
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new InternetExplorerDriver(ieCapabilities);
方法二:
IE安全保护都去掉: internet选项——安全 internet-启用保护模式 勾去掉
本地internet-启用保护模式 勾去掉 可信站点-启用保护模式 勾去掉 受限站点-启用保护模式 勾去掉
Selenium 调用IEDriverServer打开IE浏览器
无论是selenium2(WebDriver)还是selenium2Library,如果想要调用ie浏览器,均需以下步骤。
下载IEDriverServer。进入索引页,首先选择版本号,IEDriverServer的版本号和Selenium的版本号一定要一致,因为我选择的是selenium-2.53,所以IEDriverServer也选择的是2.53版本的。打开后的页面如下所示:
解压缩得到IEDriverServer.exe,并将其所在目录添加到环境变量
针对windows vista和windows 7上的IE7或者更高的版本,必须在IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上),即保持四个区域的保护模式是一致的。如下图所示:针对IE11,需要修改注册表。如果是32位的windows,key值为
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
,如果是64位的windows,key值为
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
如果key值不存在,就添加。之后在key内部创建一个iexplorer.exe,DWORD类型,值为0,我的windows是64位的,修改后的注册表如下图所示:
之后Selenium就可以正常打开ie浏览器。
参考selenium官方文档