package pl.webtest.page;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
/**
* Page object pattern.
* Abstract class representation of a Page in the UI.
*
* (https://code.google.com/p/selenium/wiki/PageObjects)
* (https://code.google.com/p/selenium/wiki/PageFactory)
*/
public abstract class Page {
protected WebDriver webDriver;
/**
* Constructor injecting the WebDriver interface
*
* @param webDriver
*/
public Page(WebDriver webDriver) {
this.webDriver = webDriver;
}
public String getTitle() {
return webDriver.getTitle();
}
public static <T extends Page> T getInstance(WebDriver webDriver, String url, Class<T> type) {
webDriver.get(url);
return getInstance(webDriver, type);
}
public static <T extends Page> T getInstance(WebDriver webDriver, Class<T> type) {
return PageFactory.initElements(webDriver, type);
}
}