Internet Explorer保护模式设置和缩放级别

时间:2018-04-16 05:59:20

标签: c# selenium selenium-webdriver selenium-iedriver iedriverserver

using System;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium;

namespace CSharpAutomationFramework.Tests
{
        public class BrowserSource
    {
        var options = new InternetExplorerOptions();
        options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
            public bool IgnoreZoomLevel { get; set; }
        public bool IntroduceInstabilityByIgnoringProtectedModeSettings { get; set; }

        InternetExplorerDriver protectivemode = new InternetExplorerDriver(options);
        InternetExplorerOptions options = new InternetExplorerOptions();
        options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
        InternetExplorerDriver zoom = new InternetExplorerDriver(zoomoptions);
        InternetExplorerOptions zoomoptions = new InternetExplorerOptions();
        options.IgnoreZoomLevel = true;

        static string[] Browsers = {
            "ie"
    };
    }
}

我正在尝试使用上面的代码在运行我的selenium脚本时忽略缩放级别和保护模式设置,但脚本在构建解决方案时显示错误。不知道我哪里出错了。

1 个答案:

答案 0 :(得分:2)

使用 Selenium 3.x IEDriverServer 3.x Internet Explorer 时,您无法忽略缩放级别保护模式设置。

如果您查看Required ConfigurationInternet Explorer Driver,则明确提到以下几点:

保护模式

在Windows Vista或Windows 7上的Internet Explorer 7或更高版本中,必须将每个区域的保护模式设置设置为相同的值。只要每个区域的值相同,该值就可以打开或关闭。要设置保护模式设置,您必须选择&#34; Internet选项&#34;来自&#34;工具&#34;单击菜单,然后单击安全性选项卡。对于每个区域,标签<<>>启用保护模式标签底部会显示一个复选框。

ProtectedModeSettings

@JimEvans在他的文章You're Doing It Wrong: IE Protected Mode and WebDriver中明确提到:

  

使用该功能并不能解决潜在的问题。如果跨越保护模式边界,则可能导致非常意外的行为,包括挂起,元素位置不起作用以及未传播的点击。为了帮助警告人们这个潜在的问题,该功能被赋予了一些可怕的名字,如 Java 中的INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS .NET 中的IntroduceInstabilityByIgnoringProtectedModeSettings。我们真的认为告诉用户使用此设置会在代码中引入潜在的不良后果会阻碍其使用,但事实证明并非如此。

浏览器缩放级别

浏览器缩放级别必须设置为100%,以便可以将本机鼠标事件设置为正确的坐标。

解决方案

根据Required ConfigurationInternet Explorer Driver

  • 保护模式设置设置/取消设置为所有区域的相同级别。
  • 浏览器缩放级别设置为 100%