package de.asideas.crowdsource.testsupport.pageobjects; import de.asideas.crowdsource.testsupport.selenium.SeleniumWait; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import static org.openqa.selenium.support.ui.ExpectedConditions.presenceOfElementLocated; import static org.openqa.selenium.support.ui.ExpectedConditions.visibilityOf; @Component public class RegistrationForm { @FindBy(css = ".signup-form input[name='email']") private WebElement emailInputField; @FindBy(css = ".signup-form .form-controls-email .error") private WebElement emailFieldError; @FindBy(css = ".signup-form input[name='termsOfServiceAccepted']") private WebElement acceptTosCheckbox; @FindBy(css = ".signup-form button[type='submit']") private WebElement registerButton; @Autowired private SeleniumWait wait; public void waitForPageLoad() { wait.until(presenceOfElementLocated(By.className("signup-form"))); } public void setEmailText(String text) { wait.until(visibilityOf(emailInputField)); emailInputField.sendKeys(text); } public void checkAcceptTosCheckbox() { wait.until(visibilityOf(acceptTosCheckbox)); if (!acceptTosCheckbox.isSelected()) { acceptTosCheckbox.click(); } } public void uncheckAcceptTosCheckbox() { wait.until(visibilityOf(acceptTosCheckbox)); if (acceptTosCheckbox.isSelected()) { acceptTosCheckbox.click(); } } public void submit() { wait.until(visibilityOf(registerButton)); registerButton.click(); } public String getEmailFieldErrorText() { wait.until(visibilityOf(emailFieldError)); return emailFieldError.getText(); } }