Я всегда делаю, скажем, суперэкранный объект экранной страницы, где я храню свой экземпляр драйвера и глобальные переменные, как в примере ниже:
public class Screen {
private String currentScreen = "Page";
private boolean isLoaded = false;
private MobileDriver driver;
public Screen(MobileDriver mobileDriver) {
this.driver = mobileDriver;
}
public String getCurrentScreen() {
return name;
}
public void setCurrentScreen(String name) {
this.name = name;
}
public boolean isLoaded() {
return isLoaded;
}
public void setLoaded(boolean loaded) {
isLoaded = loaded;
}
, поэтому я расширяю все остальные классы объектов страницы, предоставляя драйвер и все необходимые глобальные переменные с помощью getter / setter
так вот как будет выглядеть дочерний класс объекта страницы
public class OnBoardingScreen extends Screen{
@AndroidFindBy(id = "onboarding_content")
@WithTimeout(time = 1, unit = TimeUnit.SECONDS)
private MobileElement labelContent;
@AndroidFindBy(id = "onboarding_skip_intro")
@WithTimeout(time = 1, unit = TimeUnit.SECONDS)
private MobileElement buttonSkipIntro;
public OnBoardingScreen(MobileDriver driver) {
super(driver);
PageFactory.initElements(new AppiumFieldDecorator(driver, 2, TimeUnit.SECONDS), this);
WaitUtils.isElementPresent(driver, buttonSkipIntro, 1);
if (!Util.areElementsLoaded(labelTitle, labelContent, buttonSkipIntro)) {
super.setLoaded(false);
} else {
super.setLoaded(true);
}
так что вы, безусловно, можете сделать такой дизайн для ваших тестов, добавив переменную домена в этот суперкласс.