自动化使用InternetExplorerDriver的IE浏览器的手动步骤

时间:2013-12-26 06:16:18

标签: java internet-explorer selenium selenium-webdriver

祝你们圣诞快乐,新年快乐。

在使用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,   真);

寻找您的快速回复和帮助..

1 个答案:

答案 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] #

此处重要的值为030 =保护模式已开启,3 =保护模式已关闭。

虽然这里有一个小技巧。它并不总是存在。这是因为如果值不存在,则Windows使用默认值

defaults InternetRestricted Sites区域已启用设置,unless you are using IE7在这种情况下,Local Intranet区域也< / em>打开它。

那么,你能做什么?你有两个选择。您已经在使用Java,因此只需poke around就可以了解如何使用Java编辑注册表,或者您可以使用REG.EXE工具轻松地对纯旧的批处理文件执行相同操作(文档说明“Windows XP” - 忽略它,该工具自Windows XP以来没有任何变化。