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);