8

有什么方法可以在 Internet Explorer 9 中使用 IEDriverServer 以 InPrivate 模式运行 Selenium 自动化测试?我需要测试 2(两个)测试用例:
1. 浏览器已关闭。打开一个 IE InPrivate 模式的窗口。运行测试。
2. 浏览器以正常模式打开。打开 IE InPrivate 模式的新窗口。运行测试。

JAVA 代码应该如何寻找这个测试?
谢谢

4

2 回答 2

10
public void openBrowserInPrivacyMode(boolean isBrowserActive) {
    System.setProperty("webdriver.ie.driver", "path/to/IEDriverServer_x32.exe"); 
    DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();  
    capabilities.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, true);  
    сapabilities.setCapability(InternetExplorerDriver.IE_SWITCHES, "-private");
    InternetExplorerDriver driver = new InternetExplorerDriver(capabilities);
于 2013-06-12T14:16:40.390 回答
1

@Roman 的解决方案现已弃用

执行此操作的新方法如下:

InternetExplorerOptions ieOptions = new InternetExplorerOptions();
ieOptions.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, true);
ieOptions.addCommandSwitches("-private");
InternetExplorerDriver driver = InternetExplorerDriver(ieOptions));

此外,在我设置TabProcGrowth注册表值之前,我在执行此操作时遇到了问题。在这样做之前,我遇到了以下异常:

org.openqa.selenium.SessionNotCreatedException: Unexpected error launching Internet Explorer.
Unable to use CreateProcess() API. To use CreateProcess() with Internet Explorer 8 or higher,
the value of registry setting in
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth must be '0'.

我在 Windows 10 和 Selenium 3.14 上遇到了这种情况。奇怪的是,设置 TabProcGrowth 值也为我解决了这个问题。

于 2018-09-17T09:41:32.560 回答