在使用InternetExplorerDriver webdriver时,我需要您帮助自动执行某些步骤。
以下是我的代码 -
File file =new File("C:\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability("ignoreZoomSetting", true);
driver = new InternetExplorerDriver(caps);
执行此操作时,我收到此异常。
引起:org.openqa.selenium.remote.SessionNotFoundException: 启动Internet Explorer时出现意外错误。保护模式设置 对于所有区域都不一样。必须将启用保护模式设置为 所有区域的值相同(启用或禁用)。 (警告: 服务器没有提供任何堆栈跟踪信息)命令持续时间或 超时:1.29秒
谷歌搜索后,我得到了一个帮助手动更改一些IE设置。 http://jimevansmusic.blogspot.in/2012/08/youre-doing-it-wrong-protected-mode-and.htm L
我的问题是 - 我必须运行一个端到端套件,系统将分配一个窗口框运行时并开始测试,因此两者之间没有手动交互, 我的所有测试都失败了以上例外。
有没有办法绕过这些手动步骤或在java / selenium代码中加入一些逻辑/ Api?
FYI-我累了下面的代码忽略了安全性为真。它没有帮助我/得到同样的例外..
capab.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, 真);
寻找您的快速回复和帮助..
答案 0 :(得分:2)
Internet Explorer中每个“级别”的所有设置都存储在注册表中,包括受保护的模式设置。
如果您打开注册表编辑器,并导航到:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
在此注册表项中,将有5个子项,每个子项标记为0到4.这些子项映射到“Internet选项”控制面板小程序中的“区域”或“站点级别”。
微软有一段稍微过时的documentation关于每个区域与之相关的内容,以及这些区域中每个设置的相关内容。
您应该能够看到代表保护模式设置的特定DWORD
值:
2500 Turn on Protected Mode [Vista only setting] #
此处重要的值为0
和3
。 0
=保护模式已开启,3
=保护模式已关闭。
虽然这里有一个小技巧。它并不总是存在。这是因为如果值不存在,则Windows使用默认值。
defaults Internet
和Restricted Sites
区域已启用设置,unless you are using IE7在这种情况下,Local Intranet
区域也< / em>打开它。
那么,你能做什么?你有两个选择。您已经在使用Java,因此只需poke around就可以了解如何使用Java编辑注册表,或者您可以使用REG.EXE工具轻松地对纯旧的批处理文件执行相同操作(文档说明“Windows XP” - 忽略它,该工具自Windows XP以来没有任何变化。