【发布时间】:2016-07-19 15:25:36
【问题描述】:
我正在尝试实例化 WebDriver 的单个实例以在某些测试中使用,这样做可能会过于复杂。我想我只需要实例化一个静态网络驱动程序,然后为每个功能文件重复使用一次,假设这是可能的。
我不清楚为什么没有实例化驱动程序。我正在尝试通过从 IDE(intelliJ)中的功能文件运行来进行调试。我期望驱动程序在调用 Super 时进行实例化。
步骤定义:
public class FindAHolidayStepDefs extends DriverBase {
private HolidaysHomePage tcHomePage;
private SearchResultsPage searchPage;
@Before //this is the cucumber @Before
public void setup(){
holHomePage = new HolidaysHomePage(driver);
searchPage = new SearchResultsPage(driver);
}
@Given("^I am on the Holidays homepage$")
public void IAmOnTheHolidaysHomepage() {
assertEquals("the wrong page title was displayed !", "Cheap Travel\u00ae : Cheap Holidays & Last Minute Package Deals", holHomePage.getTitle());
} // more step defs below...
页面对象:
public class HolidaysHomePage extends SeleniumBase {
public HolidaysHomePage(WebDriver driver) {
super(driver); //Expecting driver to instantiate here
visit("");
driver.manage().window().maximize();
assertTrue("The Holidays header logo is not present",
isDisplayed(headerLogo));
}
//code...
驱动程序库:
public class DriverBase implements Config {
protected WebDriver driver;
@Before //this is the Junit @Before
public void before() throws Throwable {
if (host.equals("localhost")) {
switch (browser) {
case "firefox":
driver = new FirefoxDriver();
break;
case "chrome":
System.setProperty("webdriver.chrome.driver",
System.getProperty("user.dir") + "\\drivers\\chromedriver.exe");
driver = new ChromeDriver();
break;
}
}
}
@After
public void after() {
driver.quit();
}
};
SeleniumBase(只是一个抽象出 Selenium API 方法的类)
public class SeleniumBase implements Config {
public WebDriver driver;
public SeleniumBase(WebDriver driver) {
this.driver = driver;
}
public void visit(String url) {
if (url.contains("http")) {
driver.get(url);
} else {
driver.get(baseUrl + url);
}
}
配置:
public interface Config {
final String baseUrl = System.getProperty("baseUrl", "http://holidaystest.co.uk/");
final String browser = System.getProperty("browser", "chrome");
final String host = System.getProperty("host", "localhost");
}
【问题讨论】:
标签: java selenium junit webdriver cucumber