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 ActivationForm {
@FindBy(css = ".activation-form h1")
private WebElement headline;
@FindBy(css = ".activation-form .info-text")
private WebElement infoText;
@FindBy(css = ".activation-form .form-controls-password input[type='password']")
private WebElement passwordInputField;
@FindBy(css = ".activation-form .form-controls-repeated-password input[type='password']")
private WebElement repeatPasswordInputField;
@FindBy(css = ".activation-form button[type='submit']")
private WebElement saveButton;
@FindBy(css = ".activation-form .general-error span")
private WebElement errorText;
@Autowired
private SeleniumWait wait;
public void waitForPageLoad() {
wait.until(presenceOfElementLocated(By.cssSelector(".activation-form")));
}
public void setPasswordText(String text) {
wait.until(visibilityOf(passwordInputField));
passwordInputField.sendKeys(text);
}
public void setRepeatPasswordText(String text) {
wait.until(visibilityOf(repeatPasswordInputField));
repeatPasswordInputField.sendKeys(text);
}
public void submit() {
wait.until(visibilityOf(saveButton));
saveButton.click();
}
public String getErrorText() {
wait.until(visibilityOf(errorText));
return errorText.getText();
}
public String getHeadline() {
return headline.getText();
}
public String getInfoText() {
return infoText.getText();
}
}