【问题标题】:How can I set my Firefox browser in private mode in Selenium 2.53.1?如何在 Selenium 2.53.1 中将 Firefox 浏览器设置为私有模式?
【发布时间】:2017-08-04 08:56:42
【问题描述】:

我使用的是 selenium 2.53.0(我不想更新到 3.0,因为我需要在 Firefox 上工作,而 Selenium 没有为 FF 实现操作)。

我的问题是:我尝试以私有模式打开 FF(我不想保留缓存,因为我运行了很多 FF 实例)

为此,我使用 FF 配置文件并且我有证书,所以我接受它。

我的代码是:

        FirefoxDriverManager.getInstance().setup();

        capabilities.setBrowserName("firefox");
        capabilities.setVersion("46");

        ProfilesIni profile = new ProfilesIni();
        FirefoxProfile ffProfile = profile.getProfile("default");

        ffProfile.setPreference("browser.private.browsing.autostart", true); 
        ffProfile.setPreference("browser.privatebrowsing.autostart", true);

        //accept the certificate
        ffProfile.setAcceptUntrustedCertificates(true);
        ffProfile.setAssumeUntrustedCertificateIssuer(false);
        capabilities.setCapability(FirefoxDriver.PROFILE, ffProfile);
        WebDriver webDriver = new FirefoxDriver();

我尝试了"browser.private.browsing.autostart""browser.privatebrowsing.autostart",因为当我在firefox 中执行about:config 时,我发现了这两个。

我没有收到任何错误,Firefox 运行我的测试,但不是私下运行。你有什么主意吗? 我找到了这个post,但它没有答案。

【问题讨论】:

    标签: java selenium firefox


    【解决方案1】:

    在上面的代码示例中,您尝试两次设置配置文件。尝试删除其中一个论点?只要

     ffProfile.setPreference("browser.privatebrowsing.autostart", true);
    

    不适合您,有替代解决方案;这样你就可以工作,直到你弄明白为止。

    在您正在访问的页面上找到您希望打开私人窗口的任何元素。例如:

    Driver.FindElement(By.ByXpath(//div[@id="loginButton"])).sendKeys(Keys.chord(Keys.CONTROL, Keys.SHIFT, "P"));
    

    然后给它发送一个Ctrl+Shift+p..然后就可以使用新的private 测试窗口。也许不是最好的解决方案,但是,这将 100% 有效,刚刚在我的机器上进行了测试,如果您在解决此问题时遇到问题,请在下方评论。

    祝你好运!

    【讨论】:

    • 它正在“工作”,它通过打印有关隐私的信息绝对停止我的测试:) 但是是的,我的页面处于私有模式。你知道为什么我的偏好不起作用吗?我需要更改解决方法的代码。
    • 可能它会停止您的测试,因为您需要 getWindowHandles() 然后切换到新打开的窗口。与此同时,我会试一试,看看我是否可以为你从首选项中启动 Firefox。
    • 当我在 firefox 中输入 about:config 时,我可以看到布尔变量 browser.privatebrowsing 设置为 true(但 firefox 仍然在正常的非私人窗口中打开)。但是根据下面的这个官方链接(始终使用私人浏览)support.mozilla.org/en-US/kb/… Firefox 启动时您不会看到紫色丝带。但本质上是因为它不记得它处于私人模式的历史。还有另一个链接。 ccm.net/faq/…
    • 当我输入 about:config 时,我看不到布尔变量 browser.privatebrowsing 设置为 true,它始终设置为 false。所以如果它是真的(而不是紫色的)没关系?因为当我使用您的解决方法时,它是紫色的。感谢您的帮助!
    • 我的是用户设置且为真;然而尽管如此,仍然没有紫色的私人窗口
    【解决方案2】:
    FirefoxOptions opts = new FirefoxOptions();
    opts.addArguments("-private");
    FirefoxDrive f = new FirefoxDriver(opts);
    

    目前正在使用 FF v54 和 selenium 3.4.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 2017-05-24
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      相关资源
      最近更新 更多