Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pages;
- import com.codeborne.selenide.Selenide;
- import net.serenitybdd.core.pages.PageObject;
- import net.serenitybdd.core.pages.WebElementFacade;
- import net.thucydides.core.annotations.DefaultUrl;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebElement;
- import java.util.List;
- import static com.codeborne.selenide.Selenide.$;
- import static com.codeborne.selenide.Selenide.$$;
- import static java.lang.String.format;
- //import com.codeborne.selenide.Selenide.$;
- //mport java.util.function.*;
- @DefaultUrl("https://www.spotify.com/us/signup/")
- public class SignUpPage extends PageObject {
- private By emailField = By.cssSelector("input#register-email");
- private By confirmEmailField = By.cssSelector("input#register-confirm-email");
- private By passwordField = By.cssSelector("input#register-password");
- private By nameField = By.cssSelector("input#register-displayname");
- private By monthDropDown = By.cssSelector("select#register-dob-month");
- private String monthDropDownOption = "//select[@id='register-dob-month']/option[text()='%s']";
- private By dayField = By.cssSelector("input#register-dob-day");
- private By yearField = By.cssSelector("input#register-dob-year");
- private String sexRadioButton = "//li[@id='li-gender']//label[normalize-space()='%s']/input";
- //private By sexRadioButton = By.cssSelector("li#li-gender"); // for selenium - //li[@id='li-gender']/label[normalize-space()='%s']/input";
- private By shareCheckbox = By.cssSelector("input#register-thirdparty");
- private By registerButton = By.cssSelector("a#register-button-email-submit");
- private By errorLabel = By.xpath("//label[@class='has-error' and string-length(text())>0]");
- private String errorByText = "//label[@class=\"has-error\" and text()=\"%s\"]";
- // public SignUpPage openPage() {
- // Selenide.open("/");
- // return this;
- // }
- public SignUpPage typeEmail(String email) {
- find(emailField).sendKeys(email);
- // $(emailField).sendKeys(email); - selenide
- //driver.findElement(emailField).sendKeys(email); - selenium
- return this;
- }
- public SignUpPage typeConfirmEmail(String email) {
- find(confirmEmailField).sendKeys(email);
- //$(confirmEmailField).sendKeys(email); - selenide
- //driver.findElement(confirmEmailField).sendKeys(email); - selenium
- return this;
- }
- public SignUpPage typePassword(String password) {
- find(passwordField).sendKeys(password);
- // driver.findElement(passwordField).sendKeys(password);
- return this;
- }
- public SignUpPage typeName(String name) {
- find(nameField).sendKeys(name);
- //driver.findElement(nameField).sendKeys(name);
- return this;
- }
- public SignUpPage setMonth(String month) {
- // find(monthDropDown).selectOption(month); // метод дропдауна в селендие
- //driver.findElement(monthDropDown).click();
- //клик на дропдаун, ожидаение выпадающего списка
- //new WebDriverWait(driver, 5).until(ExpectedConditions.visibilityOfElementLocated(By.xpath(String.format(monthDropDownOption, month)))).click();
- //driver.findElement(By.xpath(String.format(monthDropDownOption, month))).click();
- find(monthDropDown).click();
- find(By.xpath(format(monthDropDownOption, month))).waitUntilVisible().click();
- return this;
- }
- public SignUpPage typeDay(String day) {
- find(dayField).sendKeys(day);
- //driver.findElement(dayField).sendKeys(day);
- return this;
- }
- public SignUpPage typeYear(String year) {
- find(yearField).sendKeys(year);
- //driver.findElement(yearField).sendKeys(year);
- return this;
- }
- public SignUpPage setSex(String value) {
- find(By.xpath(format(sexRadioButton, value))).click();
- // driver.findElement(By.xpath(String.format(sexRadioButton, value))).click();
- return this;
- }
- public SignUpPage setShare(boolean value) {
- //find(shareCheckbox).;
- WebElement checkbox = find(shareCheckbox);
- if(!checkbox.isSelected() == value) {
- checkbox.click();
- }
- return this;
- }
- public void clickSignUpButton(){
- //$(registerButton).waitWhile(Condition.disabled, 5000).click; - ждать 5 секунд пока кнопка задихейблена, когда активна - клик
- find(registerButton).click();
- //driver.findElement(registerButton).click();
- }
- public List<WebElementFacade> getErrors() {
- System.out.println("Поля с ошибками" + findAll(errorLabel));
- return findAll(errorLabel);
- }
- public boolean isErrorVisible(String message ) {
- return findAll(By.xpath(format(errorByText, message))).size() > 0
- && findAll(By.xpath(format(errorByText, message))).get(0).isDisplayed();
- }
- public String getErrorByNumber(int number) {
- return getErrors().get(number - 1).getText();
- }
- }
Add Comment
Please, Sign In to add comment