如何通过Selenium和Java使用setAbility()忽略Internet Explorer的保护模式设置?



我正在尝试使用 IE 在 java 硒中进行测试,但我的问题是我必须继续在保护模式下配置设置,是已弃用的设置的替代方案 功能

WebDriver driver = new InternetExplorerDriver(cap);

因为我希望在没有人工交互的情况下实现自动化。我在 eclipse 中使用此代码,它在我的代码中根本没有任何效果,上面的代码用黄线荧光笔划出,表示它已被弃用。那么有没有一个新函数来实现这一点,这是我一直在用于健全性检查的代码

DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
cap.setCapability("nativeEvents", false);
cap.setCapability("unexpectedAlertBehaviour", "accept");
cap.setCapability("ignoreProtectedModeSettings", true);
cap.setCapability("disable-popup-blocking", true);
cap.setCapability("enablePersistentHover", true);
cap.setCapability("ignoreZoomSetting", true);
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);

看来你快到了。您需要使用 MutableCapabilities 类中merge()的方法将对象的 DesiredCapabilities 类型合并到 InternetExplorerOptions 类型对象中,并通过传递 InternetExplorerOptions 对象来启动 WebDriverWebClient 实例,如下所示:

DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
cap.setCapability("nativeEvents", false);
cap.setCapability("unexpectedAlertBehaviour", "accept");
cap.setCapability("ignoreProtectedModeSettings", true);
cap.setCapability("disable-popup-blocking", true);
cap.setCapability("enablePersistentHover", true);
cap.setCapability("ignoreZoomSetting", true);
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
InternetExplorerOptions options = new InternetExplorerOptions();
options.merge(cap);
WebDriver driver = new InternetExplorerDriver(options);

感谢DebanjanB的回答,这就是我所需要的。但是我DesiredCapabilities.internetExplorer();部分遇到了一些错误,以下是对我有用的方法:

     InternetExplorerOptions cap = new InternetExplorerOptions();
     cap.setCapability("nativeEvents", false);
     cap.setCapability("unexpectedAlertBehaviour", "accept");
     cap.setCapability("ignoreProtectedModeSettings", true);
     cap.setCapability("disable-popup-blocking", true);
     cap.setCapability("enablePersistentHover", true);
     cap.setCapability("ignoreZoomSetting", true);
     cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
     WebDriver driver = new InternetExplorerDriver(cap);

最新更新