一尘不染

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

selenium

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脚本时忽略缩放级别和保护模式设置,但是该脚本
在构建解决方案时显示错误。不知道我要去哪里错了。


阅读 542

收藏
2020-06-26

共1个答案

一尘不染

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

如果您查看Internet Explorer 驱动程序的必需
配置,则会明确提到以下几点:

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

ProtectedModeSettings

@JimEvans在他的文章《你做错了:IE保护模式和
WebDriver》中明确提到:

但是,使用该功能并不能解决根本问题。如果
越过保护模式边界
,则可能
导致非常意外的行为,包括挂起,元素位置不起作用以及单击不传播。为了帮助警告这种潜在的问题的人,能力是
给喜欢大可怕的冠冕堂皇的名称
INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS中的Java和
IntroduceInstabilityByIgnoringProtectedModeSettings在.NET。我们确实
认为,告诉用户使用此设置会
在他们的代码中引入潜在的缺陷,因此会阻止其使用,但事实
并非如此。

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


具体根据所需配置的Internet Explorer的驱动程序:

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

2020-06-26