Selenium使用什么Firefox驱动程序?

时间:2015-06-30 13:08:30

标签: java eclipse firefox selenium junit

我正在尝试使用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中运行与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);

我的问题是:

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

1 个答案:

答案 0 :(得分:0)

You can modify firefox profile before you use it in your tests by calling SetPreference method of the FirefoxProfile class:

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