我使用Selenium web驱动程序(2.44)来自动化某些网页,在自动化运行期间我的浏览器出现意外错误。请参阅以下内容 图像:
所以当发生这种情况时,我的页面会挂起,框架无法找到当前网页中的任何元素。我试图升级/降级我的IE驱动程序。
当我双击此错误标志时,弹出IE窗口后出现:
答案 0 :(得分:0)
开启浏览器的保护模式。它位于选项的“安全”选项卡中。如果这不起作用,请确保每个区域的选项(打开或关闭)相同。有四个区域(Intranet,Trusted,Internet和Restricted)。
这里有一些代码可以帮助你(IE):
// Intranet
private const string REG_KEY_IE_ZONE_1 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1";
// Trusted
private const string REG_KEY_IE_ZONE_2 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2";
// Internet
private const string REG_KEY_IE_ZONE_3 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3";
// Restricted
private const string REG_KEY_IE_ZONE_4 = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\4";
public static void SetIESecurityToProtected()
{
// 3 is off, 0 is on
try
{
// Intranet
if ((int)Registry.GetValue(REG_KEY_IE_ZONE_1, "2500", -1) == 3)
{
Registry.SetValue(REG_KEY_IE_ZONE_1, "2500", 0);
}
// Trusted
if ((int)Registry.GetValue(REG_KEY_IE_ZONE_2, "2500", -1) == 3)
{
Registry.SetValue(REG_KEY_IE_ZONE_2, "2500", 0);
}
// Internet
if ((int)Registry.GetValue(REG_KEY_IE_ZONE_3, "2500", -1) == 3)
{
Registry.SetValue(REG_KEY_IE_ZONE_3, "2500", 0);
}
// Restricted
if ((int)Registry.GetValue(REG_KEY_IE_ZONE_4, "2500", -1) == 3)
{
Registry.SetValue(REG_KEY_IE_ZONE_4, "2500", 0);
}
}
catch (Exception e)
{
// handle your exception or record it...
}
}
这将修改注册表...所以...阅读代码并确保您了解它的作用。这个对我有用。我看到不同人的不同行为,但这就是我必须做的事情。
以下是官方要求披露:
还有一些其他注意事项,例如需要考虑的浏览器窗口焦点,因此我建议仔细查看驱动程序文档:https://code.google.com/p/selenium/wiki/InternetExplorerDriver