如何在Selenium中使用IEDriverServer避免"保护模式"问题?

Pet*_*ier 2 selenium internet-explorer automated-tests build jenkins

我正在尝试使用Internet Explorer(在我的情况下为8)通过Jenkins执行Selenium测试.据我所知,"保护模式"Internet Security Option需要为所有站点区域设置相同的值(启用或禁用)才能使其正常工作.

我已经尝试在浏览器中执行此操作(确保我以在Jenkins中执行测试的同一用户身份登录)并通过"本地计算机策略\计算机配置\管理模板"下的所有站点区域的GPO策略Windows组件\ Internet Explorer\Internet控制面板\安全页面"和"本地计算机策略\用户配置\管理模板\ Windows组件\ Internet Explorer\Internet控制面板\安全页面"下..

但是,我继续收到下面列出的错误:

Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones.

任何人都可以指出我正确的方向,以解决这个问题吗?

Pet*_*ier 6

(发布我自己的问题的答案,其他任何人都来自搜索.)

为了最终解决这个问题,我不得不做两件事:

首先,验证"计算机配置"和"用户配置"的"打开保护模式"设置是否完全相同.我认为设置是启用/禁用,或者保护模式是否启用/禁用实际上并不重要,只要所有这些设置(计算机配置下11个和用户配置下11个)相同.

最快的方法是使用组策略编辑器验证是否已配置所有适当的设置.

为此,请打开本地组策略编辑器(start/run/gpedit.msc)并导航到"本地计算机策略\计算机配置\管理模板\所有设置"节点.按设置排序(如果尚未完成)并向下滚动,直到看到一堆"打开保护模式"设置.

将每个配置为相同的值.在我的情况下,我最初将这些全部设置为启用和保护模式禁用,但是一旦我最终找到注册表更改(见下文),我回到原来并将所有内容设置为"未配置",就像它最初一样,我的解决方案仍然工作.重点是使它们完全相同.

然后对"本地计算机策略\用户配置\管理模板\所有设置"节点重复此过程.

完成此操作后,所有保护模式设置应该相同.注意:如果您使用一个用户执行测试而另一个用户进行系统管理,请仅对两个用户执行此过程.(我的设置有问题所以我不确定这是否是必需的,但它不会受到伤害.)

其次,调整您的注册表设置. 导航到"HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones".对于每个子键(0,1,2,3,4),找到名为"2500"的DWORD.如果它不存在,请创建它.同样,将值设置为对所有5个区域都相同.我使用'0',即启用.我相信'3'是残疾人.

对于正在使用IEDriverServer.exe的用户,请对"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones"重复此过程.

更新注册表后,重新启动计算机.

在尝试手动或通过GPO调整设置数小时后,按照这两个步骤解决了我的问题.其他人似乎都使用这两种方法都取得了成功,但使用注册表编辑是我环境中唯一有效的方法(在两个不同的Jenkins从属服务器上复制(和修复)).

注意:我正在使用Jenkins的命名用户帐户进行IEDriverServer操作.如果您正在以"本地系统"用户身份执行测试,您可能需要查看此答案以获取进一步说明/故障排除.

  • _I使用'0',即启用.我相信'3'是残疾人_这是完全正确的.节省了我们的一天,非常感谢! (2认同)