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