package de.asideas.crowdsource.testsupport.pageobjects;
import de.asideas.crowdsource.testsupport.selenium.SeleniumWait;
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.visibilityOf;
@Component
public class LoginForm {
@FindBy(css = ".login-form input[name='email']")
private WebElement emailInputField;
@FindBy(css = ".login-form input[type='password']")
private WebElement passwordInputField;
@FindBy(css = ".login-form button[type='submit']")
private WebElement saveButton;
@FindBy(css = ".login-form .general-error span")
private WebElement errorText;
@FindBy(className = "password-recovery-link")
private WebElement passwordRecoveryLink;
@Autowired
private SeleniumWait wait;
public void waitForPageLoad() {
wait.until(visibilityOf(emailInputField));
wait.until(visibilityOf(passwordInputField));
wait.until(visibilityOf(saveButton));
}
public void login(String email, String password) {
waitForPageLoad();
emailInputField.sendKeys(email);
passwordInputField.sendKeys(password);
saveButton.click();
}
public String getErrorText() {
wait.until(visibilityOf(errorText));
return errorText.getText();
}
public void clickPasswordRecoveryLink() {
passwordRecoveryLink.click();
}
}