【问题标题】:What Firefox Driver does Selenium use?Selenium 使用什么 Firefox 驱动程序?
【发布时间】:2015-06-30 13:08:30
【问题描述】:

我正在尝试将 Selenium WebDriver 与 Eclipse 和 JUnit 以及 Firefox 浏览器一起使用来进行一系列链接测试。我遇到的问题是 Firefox 浏览器在新窗口中打开了一些链接。注意:这些不是警报。 我将浏览器设置为在同一个窗口中打开所有链接,如果我手动导航到所选链接,它会执行它应该做的事情。这些是目前默认浏览器的设置。

browser.link.open_newwindow;                                 1
browser.link.open_newwindow.disabled_in_fullscreen;          true
browser.link.open_newwindow.override.external:               1
browser.link.open_newwindow.restriction;                     2

当我在 Eclipse 中运行与 Eclipse 中的 JUnit 测试相同的东西时,链接会在新窗口中打开! 我注释掉了driver.close() 并检查了Eclipse 使用的浏览器,所有设置都不同。甚至还有另一个设置不在我的浏览器中。

browser.link.open_newwindow;                                  2
browser.link.open_newwindow.disabled_in_fullscreen;           false
browser.link.open_newwindow.override.external:               -1
browser.link.open_newwindow.restriction;                      2
browser.link.open_external                                    2

如果我使用配置文件或强制它使用默认配置文件,则它使用的浏览器具有这些设置。

browser.link.open_newwindow;                                  2
browser.link.open_newwindow.disabled_in_fullscreen;           true
browser.link.open_newwindow.override.external:                1
browser.link.open_newwindow.restriction;                      2
browser.link.open_external                                    2 

通过阅读以前的帖子,我了解到 Eclipse/Selenium/JUnit 将使用我 PC 上安装的默认浏览器。或者至少是默认浏览器配置文件

我的代码:

    import java.util.concurrent.TimeUnit;
    import org.junit.*;
    import static org.junit.Assert.*;
    import org.openqa.selenium.*;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.firefox.FirefoxProfile;
    import org.openqa.selenium.firefox.internal.ProfilesIni;

    public class Pro2 {
      private WebDriver driver;
      private String baseUrl;
      private StringBuffer verificationErrors = new StringBuffer();

      @Before
      public void setUp() throws Exception {
        ProfilesIni profile = new ProfilesIni();
        FirefoxProfile ffprofile = profile.getProfile("default");
        driver = new FirefoxDriver(ffprofile);
        // driver = new FirefoxDriver();
        baseUrl = "https://www.google.ie/";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

我的问题是:

  • 是否使用不同的驱动程序(或驱动程序配置文件)?
  • 如果是这样,我该如何设置配置设置,以便在当前窗口中打开所有链接?

【问题讨论】:

    标签: java eclipse firefox selenium junit


    【解决方案1】:

    您可以通过调用FirefoxProfile 类的SetPreference 方法在测试中使用它之前修改firefox 配置文件:

    ffprofile.SetPreference("browser.link.open_newwindow", "1");
    

    【讨论】:

    • 我试过了,但它给了我这个错误:java.lang.illegalArgumentException: Preference browser.link.open_newwindow may not be overridden
    • 哪个错误?如果错误不适合评论,请随时将错误添加到您的帖子中。
    • java.lang.illegalArgumentException: Preference browser.link.open_newwindow 不能被覆盖冻结值=2,请求值=1
    猜你喜欢
    • 2014-03-27
    • 1970-01-01
    • 2014-01-03
    • 2014-11-05
    • 2013-04-25
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 2015-08-09
    相关资源
    最近更新 更多