public <T extends Page> T searchItem(String name){
WebElement element = driver.findElement(By.name("q"));
element.clear();
element.sendKeys(name);
if (true){ //your condition here
return (T) new ResultPage(driver);
} else {
return (T) new GoogleSearchPage(driver);
}
}
Добрый день!
У меня была примерно похожая ситуация, где нужно было возращать разные страницы по клику на одной и той же кнопке, такой вот код использую :
public AbstractPageObject clickSearch(String category){
switch ( Integer.valueOf(Vars.SEARCH_OPTIONS.getProperty(category))){
case 1: Log.info("Return Search All page");b_search.click();return new PageSearchAll(driver);
case 2: Log.info("Return Search Articles page");b_search.click();return new PageSearchArticles(driver);
case 3: Log.info("Return Search Photos page");b_search.click();return new PageSearchPhotos(driver);
case 4: Log.info("Return Search Videos page");b_search.click();return new PageSearchVideos(driver);
case 5: Log.info("Return Search Members page");b_search.click();return new PageSearchMembers(driver);
default: Log.info("No search option found ...");
}
return this;
}а в тесте уже идет преобразование к нужному типу :
PageSearchAll pSearchAll = (PageSearchAll) pMain.clickSearch(searchCategory);