我正在尝试使用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);
我的问题是:
答案 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");