如何针对不同的浏览器类型使用Selenium WD打开隐身/私人窗口?

问题描述 投票:10回答:9

我想在隐身窗口隐身窗口中测试我的测试用例。

如何在各种浏览器中执行相同操作:

  • firefox(首选)
  • chrome(首选)
  • IE
  • safari
  • 歌剧

如何实现?

java browser selenium-webdriver
9个回答
19
投票
  • Chrome:

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    ChromeOptions options = new ChromeOptions();
    options.addArguments("incognito");
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);
    
  • FireFox:

    FirefoxProfile firefoxProfile = new FirefoxProfile();    
    firefoxProfile.setPreference("browser.privatebrowsing.autostart", true);
    
  • Internet Explorer:

    DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
    capabilities.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, true); 
    capabilities.setCapability(InternetExplorerDriver.IE_SWITCHES, "-private");
    
  • Opera:

    DesiredCapabilities capabilities = DesiredCapabilities.operaBlink();
    OperaOptions options = new OperaOptions();
    options.addArguments("private");
    capabilities.setCapability(OperaOptions.CAPABILITY, options);
    

9
投票

在Chrome中,您可以尝试在选项中使用-incognito命令行开关,不确定自动化扩展是否会出现问题,但是值得一试。

ChromeOptions options = new ChromeOptions();
options.addArguments("incognito");

对于FireFox,可以将配置文件中的特殊标志用于此目的>

FirefoxProfile firefoxProfile = new FirefoxProfile();    
firefoxProfile.setPreference("browser.private.browsing.autostart",true);

对于IE

setCapability(InternetExplorerDriver.IE_SWITCHES, "-private");

0
投票

找到页面上的body元素,然后为所需的浏览器触发Key Chord。在下面的示例中,我尝试将浏览器抽象为一个枚举,该枚举概述了[[newTab


0
投票
对于Chrome,使用此代码以隐身模式打开浏览器:

0
投票
public static void OpenBrowser() { if (Browser.equals("Chrome")) { System.setProperty("webdriver.chrome.driver", "E:\\Workspace\\proj\\chromedriver.exe"); DesiredCapabilities capabilities = DesiredCapabilities.chrome(); ChromeOptions options = new ChromeOptions(); options.addArguments("incognito"); capabilities.setCapability(ChromeOptions.CAPABILITY, options); driver = new ChromeDriver(capabilities); } else if (Browser.equals("IE")) { DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, false); // if you get this exception "org.openqa.selenium.remote.SessionNotFoundException: " . uncomment the below line and comment the above line // capabilities.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, true); System.setProperty("webdriver.ie.driver", "E:\\Workspace\\proj\\IEDriverServer32.exe");capabilities.setCapability(InternetExplorerDriver.IE_SWITCHES, "-private"); driver = new InternetExplorerDriver(capabilities); } else { FirefoxProfile firefoxProfile = new FirefoxProfile(); firefoxProfile.setPreference("browser.privatebrowsing.autostart", true); driver = new FirefoxDriver(firefoxProfile); }

0
投票
public class gettext { static WebDriver driver= null; public static void main(String args[]) throws InterruptedException { //for private window DesiredCapabilities capabilities = DesiredCapabilities.chrome(); ChromeOptions option = new ChromeOptions(); option.addArguments("incognito"); capabilities.setCapability(ChromeOptions.CAPABILITY,option); System.setProperty("webdriver.chrome.driver", "D:\\Tools\\chromedriver.exe"); driver= new ChromeDriver(capabilities); String url = "https://www.google.com/"; driver.manage().window().maximize(); driver.get(url); driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS); gettextdata(); } }

0
投票
FirefoxOptions opts = new FirefoxOptions(); opts.addArguments("-private"); FirefoxDrive f = new FirefoxDriver(opts);

0
投票
仅在进行以下更新后,我才能在私有模式下运行远程IE:

0
投票
如何避免在专用模式下扩展名提示
© www.soinside.com 2019 - 2024. All rights reserved.