У меня довольно сложная работа с базовыми страницами селена.В настоящее время у меня есть структура, когда страницы моего сайта, на которых размещены методы, функции и элементы, расширяют базовую страницу:
public abstract class BasePage {
protected static final int WAIT_FOR_PAGE_LOAD_IN_SECONDS = 5;
/**
* In subclasses should be used for page opening
*/
protected abstract void openPage();
/**
* checks is page opened
* @return true if opened
*/
public abstract boolean isPageOpened();
public BasePage(boolean openPageByUrl){
if(openPageByUrl){
openPage();
}
PageFactory.initElements(getDriver(), this);
waitForOpen();
}
/**
* Waiting for page opening
*/
protected void waitForOpen(){
int secondsCount = 0;
boolean isPageOpenedIndicator = isPageOpened();
while (!isPageOpenedIndicator && secondsCount < WAIT_FOR_PAGE_LOAD_IN_SECONDS) {
TimeUtils.waitForSeconds(1);
secondsCount++;
isPageOpenedIndicator = isPageOpened();
}
if(!isPageOpenedIndicator) {
throw new AssertionError("Page was not opened");
}
}
/**
* getting webdriver instance
* @return initialized in tests webdriver instance
*/
protected org.openqa.selenium.WebDriver getDriver(){
return Drivers.getDriver();
}
}
, а все мои тестовые страницы расширяют фабрику страниц
открытый класс ConditionWebDriverFactory {
@BeforeClass
public void beforeTest() {
Drivers.startBrowser(true);
Drivers.getDriver().manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
Drivers.getDriver().manage().window().maximize();
}
@AfterClass (alwaysRun = true)
public void afterTest() {
Drivers.finishBrowser();
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что все они открывают хроматический драйвер, поэтому все эти тесты в основном становятся устаревшими, когда я использую возможности из kobition, есть ли способ, который я мог бы даже создатьбазовую страницу и драйвер для мобильного эмулятора, так что мне не нужно постоянно указывать capabiltites в каждом тесте?