我有一个Windows服务,该服务在Windows 7 OS上运行Team City Build代理。
该代理触发使用Selenium IE Web驱动程序执行一系列测试的NUnit测试。
为了使Selenium IE Web驱动程序正常工作,需要将所有区域的保护模式设置为相同的值(打开或关闭保护模式)。
问题是本地系统帐户的默认设置无效(某些区域在保护模式下运行,其他区域则不在)。
谁能告诉我如何为所有用户或本地系统帐户用户更改保护模式设置?
这是解决方案(为了达到目的,我已经遍及互联网的每个角落):
启动RegEdit并转到此键:
RegEdit
HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
在我的机器上(Windows 7),本地系统帐户为S-1-5-18。这对于所有版本的Windows可能都是相同的,但我对此一无所知。
S-1-5-18
在该注册表项中,还有五个,1、2、3、4和5键-每个键代表一个区域。
对于每个区域,如果有一个名称为“ 2500”的DWORD值,请将其值设置为0以关闭保护模式。请注意,如果不存在,则不必添加它。
值“ 2500”应该控制复选框“启用保护模式”。
UPDATE(来自匿名用户):
以图形方式进行此操作的方法是确保“交互服务检测”服务(UI0Detect)正在运行(请注意,Windows 8/2012及更高版本需要HKLM\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices正确设置注册表项才能显示弹出窗口)psexec并运行
HKLM\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices
psexec
psexec -si 0 "C:\Program Files\Internet Explorer\iexplore.exe"
在弹出窗口中,单击查看消息,然后在Internet Explorer中切换屏幕后,转到工具-> Internet选项| 安全性并检查每个区域的安全性级别。
UI测试愉快!