1

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

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);
4

2 回答 2

4

看来你快到了。您需要使用 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);
于 2018-08-07T20:00:37.137 回答
0

感谢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);
于 2021-11-12T22:26:36.440 回答