Generics

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

Но через Class и метод newInstance() правильнее будет.

Добрый день!

У меня была примерно похожая ситуация, где нужно было возращать разные страницы по клику на одной и той же кнопке, такой вот код  использую :

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