package br.com.caelum.seleniumdsl.webdriver; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import br.com.caelum.seleniumdsl.Field; import br.com.caelum.seleniumdsl.Form; import br.com.caelum.seleniumdsl.SelectField; public class WebDriverForm implements Form { private final WebDriver webDriver; private final String id; public WebDriverForm(final WebDriver webDriver, final String id) { this.webDriver = webDriver; this.id = id; } public Form check(final String checkbox) { webDriver.findElement(new ByIdOrNameOrXPath(checkbox)).setSelected(); return this; } public void click(final String element) { webDriver.findElement(new ByIdOrNameOrXPath(element)).click(); } public Field field(final String field) { return new WebDriverField(webDriver, this, field); } public boolean isChecked(final String checkbox) { return webDriver.findElement(new ByIdOrNameOrXPath(checkbox)).isSelected(); } public void navigate(final String element) { webDriver.findElement(new ByIdOrNameOrXPath(element)).click(); } public SelectField select(final String selectField) { return new WebDriverSelectField(webDriver, this, selectField); } public void submit() { webDriver.findElement(id == "" ? By.xpath("//form") : By.id(id.substring(0, id.length() - 1))).submit(); } public Form uncheck(final String checkbox) { final WebElement check = webDriver.findElement(By.name(checkbox)); if(check.isSelected()) { check.toggle(); } return this; } }