package br.com.caelum.seleniumdsl;
import com.thoughtworks.selenium.Selenium;
class DefaultForm implements Form {
private final String id;
private final Selenium selenium;
private int timeout;
/**
* The form id is used in order to submit differente forms in the same web page.
*/
public DefaultForm(Selenium selenium, int timeout, String id) {
this.selenium = selenium;
this.timeout = timeout;
this.id = id;
}
public Field field(String field) {
return new DefaultField(selenium, this, field);
}
public void click(String element) {
selenium.click(element);
}
public void navigate(String element) {
selenium.click(element);
selenium.waitForPageToLoad(Integer.toString(timeout));
}
public SelectField select(String selectField) {
return new DefaultSelectField(selenium, this, selectField);
}
public Form check(String checkbox) {
selenium.check(checkbox);
return this;
}
public Form uncheck(String checkbox) {
selenium.uncheck(checkbox);
return this;
}
public boolean isChecked(String checkbox) {
return selenium.getEval("selenium.page().findElement(\"" + checkbox + "\").checked")
.equals("true");
}
public void submit() {
selenium.submit(id == "" ? "//form" : id.substring(0, id.length() - 1));
selenium.waitForPageToLoad(Integer.toString(timeout));
}
}