Есть консоль (напоминает проводник) - описывается классом BaseConsolePage
Консоль состоит из нескольких фреймов. Один из них описывается классом BaseFrameToolbarPage
У консоли есть потомки, например ModelConsoleRkPage.
Я попытался включить один PageObject в другой. В данном случае BaseFrameToolbarPage в BaseConsolePage
public class BaseConsolePage extends PageObject {
public BaseFrameToolbarPage baseFrameToolbarPage = new BaseFrameToolbarPage();
public BaseFrameToolbarPage getBaseFrameToolbarPage() {
return baseFrameToolbarPage;
}
public void setBaseFrameToolbarPage(BaseFrameToolbarPage baseFrameToolbarPage) {
this.baseFrameToolbarPage = baseFrameToolbarPage;
}
}
public class BaseFrameToolbarPage extends PageObject {
@FindBy(xpath=".//*[@id='tool_bp_1']//button[@title='Выйти']")
private WebElementFacade buttonExit;
@FindBy(xpath=".//*[@id='tool_bp_1']//button[@title='Поиск']")
private WebElementFacade buttonSearch;
public void clickButtonExit () {
buttonExit.waitUntilClickable();
buttonExit.click();
}
public void clickButtonSearch() {
buttonSearch.waitUntilClickable();
buttonSearch.click();
}
}
public class ModelConsoleRkPage extends BaseConsolePage {
//...
}
вот так все работает
@Step
public void should_be_logout_from_console_without_switch () {
switchToFrame(baseConsolePage, "toolbar");
baseConsolePage.getBaseFrameToolbarPage().clickButtonExit();
}
а вот так при вызове
consolePageObj.getBaseFrameToolbarPage().clickButtonSearch();
возникает ошибка java.lang.NullPointerException: null
@Step
public <T extends BaseConsolePage> void should_be_completed_simple_search_in_console_and_delete_all_found_object (String searchData, Class<T> consolePageClass) {
T consolePageObj = getPages().onSamePage().get(consolePageClass);
switchToFrame(consolePageObj, "toolbar");
consolePageObj.getBaseFrameToolbarPage().clickButtonSearch();
//...
}
вызываю в Story таким образом:
userModel.should_be_completed_simple_search_in_console_and_delete_all_found_object(snils, ModelConsoleRkPage.class);
если передать в качестве параметра сам родительский класс
userModel.should_be_completed_simple_search_in_console_and_delete_all_found_object(snils, BaseConsolePage.class);
то ошибка таже самая
Подскажите, пожалуйста, где я ошибся?