Я пытаюсь создать абстрактный PageObject, чтобы я мог динамически назначать URL-адрес по умолчанию, чтобы код можно было использовать на всех этапах разработки.
package com.company.serenity.product.common.ui;
import org.openqa.selenium.WebDriver;
import com.google.common.base.Predicate;
import net.serenitybdd.core.pages.PageObject;
import net.thucydides.core.util.EnvironmentVariables;
abstract public class AbstractPageObject extends PageObject {
protected AbstractPageObject() {
super();
super.setDefaultBaseUrl(getDefaultBaseUrl());
init();
}
protected AbstractPageObject(final WebDriver driver, Predicate<? super PageObject> callback) {
super(driver, callback);
this.setDefaultBaseUrl(getDefaultBaseUrl());
init();
}
public AbstractPageObject(final WebDriver driver, final int ajaxTimeout) {
super(driver, ajaxTimeout);
this.setDefaultBaseUrl(getDefaultBaseUrl());
init();
}
public AbstractPageObject(final WebDriver driver) {
super(driver);
this.setDefaultBaseUrl(getDefaultBaseUrl());
init();
}
public AbstractPageObject(final WebDriver driver,
final EnvironmentVariables environmentVariables) {
super(driver, environmentVariables);
this.setDefaultBaseUrl(getDefaultBaseUrl());
init();
}
// return the default url (from final static property)
abstract protected String getDefaultBaseUrl();
// any other initiation stuff that should happen with the constructor
abstract protected void init();
}
Я сейчас использую:
serenity.version: 2.0.29
serenity.maven.version: 2.0.29
Результат:
TEST FAILED: Should be able to login
--------------------------------------------------------------------------
[main] ERROR net.thucydides.core.steps.ConsoleLoggingListener - TEST FAILED AT STEP Administrator opens the Sudo site
[main] ERROR net.thucydides.core.steps.ConsoleLoggingListener - Undefined default URL for page object AbstractPageObject
Большое спасибо заранее. Цените драгоценное время каждого.