5

我有一个在 Windows 7 操作系统上运行 Team City Build 代理的 Windows 服务。

此代理触发 NUnit 测试,这些测试使用 Selenium IE Web 驱动程序来执行一系列测试。

为了使 Selenium IE Web 驱动程序工作,所有区域的保护模式需要设置为相同的值(保护模式打开或关闭)。

问题是本地系统帐户的默认设置无效(某些区域在保护模式下运行,而其他区域则不是)。

谁能告诉我如何更改所有用户或本地系统帐户用户的保护模式设置?

4

4 回答 4

11

这是解决方案(为了得到这个,我已经到过互联网的每个角落):

启动RegEdit并转到此键:

HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones

在我的机器(Windows 7)上,本地系统帐户是S-1-5-18. 这对于所有版本的 Windows 可能都是相同的,但我不知道。

在该注册表项中,还有五个键 1、2、3、4 和 5 - 每个都代表一个区域。

对于每个区域,如果有一个名为“2500”的 DWORD 值,请将其值设置为 0 以关闭保护模式。请注意,如果它不存在,您不必添加它。

值“2500”应该控制复选框“启用保护模式”。

更新(来自匿名用户):

执行相同操作的图形方式是确保“交互式服务检测”服务 (UI0Detect) 正在运行(请注意,Windows 8/2012 及更高版本需要HKLM\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices正确设置注册表项才能显示弹出窗口)psexec并运行

psexec -si 0 "C:\Program Files\Internet Explorer\iexplore.exe"

在弹出窗口中单击查看消息,然后在 Internet Explorer 中切换屏幕后转到工具 -> Internet 选项 | 安全并检查每个区域的安全级别。

快乐的 UI 测试!

于 2011-10-22T13:40:43.183 回答
0

您可以尝试禁用 UAC,这也将禁用系统中所有用户的保护模式。

于 2011-08-30T02:13:26.690 回答
0

解决方案的最佳描述是 https://stackoverflow.com/a/30242504/1371989

于 2015-04-28T15:23:11.257 回答
-1

IE WebDriver 上有一个设置,告诉它忽略保护模式设置。从设置的名称来看,它可能会引入一些“不稳定”,但我对这种方法没有任何问题:

var options = new InternetExplorerOptions();
// avoid the "Protected Mode must be set to the same value (enabled or disabled) for all zones" error
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
return new InternetExplorerDriver(options);
于 2012-08-23T03:56:19.863 回答