package pl.webtest.page.google;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import pl.webtest.page.Page;
/**
* Google search page
*/
public class SearchPage extends Page {
// The element is looked up using the name attribute
@FindBy(name = "q")
private WebElement searchBox;
public SearchPage(WebDriver webDriver) {
super(webDriver);
}
public SearchResultsPage search(String text) {
searchBox.sendKeys(text);
searchBox.submit();
// Sleep until the div we want is visible or 5 seconds is over
// We need to wait as div with search results is loaded dynamically on every key input
WebDriverWait wait = new WebDriverWait(webDriver, 5);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#ires")));
return getInstance(webDriver, SearchResultsPage.class);
}
}