IEDriverServer Wiki page列出了以下要求:
在Windows Vista或Windows 7上的IE 7或更高版本中,您必须设置 每个区域的保护模式设置为相同值。价值 可以打开或关闭,只要每个区域都相同。
不幸的是,在我工作的地方,公司安全策略已锁定保护模式设置,因此我无法更改设置。
有没有办法解决这个问题并让IEDriverServer正常工作?或者,Selenium不适用于在Windows 7上运行IE 7+的企业环境,用户无法更改保护模式设置?
谢谢, 戴夫
答案 0 :(得分:1)
我有同样的问题。
我通过直接编辑注册表解决了这个问题。
虽然以下是Java的示例,但它可以类似地用于其他语言。 我在IEDriver实例创建之前调用此方法。
如果要禁用它,请设置3而不是0。
private void enableIEProtectModeOfAllZones() {
final String[] ZONES = {
"\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\1\""
, "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\""
, "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\""
, "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\4\""
};
for (String zone : ZONES) {
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "reg", "add",
zone, "/v", "2500", "/t", "REG_DWORD", "/d", "0", "/f");
try {
pb.start();
} catch (IOException ioe) { ioe.printStackTrace(); }
}
}
答案 1 :(得分:0)
据我了解,您使用的是Selenium Webdriver。
请将以下内容:capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true
)添加到您的驱动程序设置中。
答案 2 :(得分:0)
您需要使用参数创建IE驱动程序实例,我假设您使用的是C#
InternetExplorerOptions opts = new InternetExplorerOptions();
opts.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
IWebDriver wDriver = new InternetExplorerDriver(opts);
这将解决您的问题