Guest User

Untitled

a guest
May 21st, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.08 KB | None | 0 0
  1. package pages;
  2.  
  3. import com.codeborne.selenide.Selenide;
  4. import net.serenitybdd.core.pages.PageObject;
  5. import net.serenitybdd.core.pages.WebElementFacade;
  6. import net.thucydides.core.annotations.DefaultUrl;
  7. import org.openqa.selenium.By;
  8. import org.openqa.selenium.WebElement;
  9.  
  10. import java.util.List;
  11.  
  12. import static com.codeborne.selenide.Selenide.$;
  13. import static com.codeborne.selenide.Selenide.$$;
  14. import static java.lang.String.format;
  15.  
  16. //import com.codeborne.selenide.Selenide.$;
  17. //mport java.util.function.*;
  18. @DefaultUrl("https://www.spotify.com/us/signup/")
  19. public class SignUpPage extends PageObject {
  20.  
  21.  
  22.  
  23.  
  24. private By emailField = By.cssSelector("input#register-email");
  25. private By confirmEmailField = By.cssSelector("input#register-confirm-email");
  26. private By passwordField = By.cssSelector("input#register-password");
  27. private By nameField = By.cssSelector("input#register-displayname");
  28. private By monthDropDown = By.cssSelector("select#register-dob-month");
  29. private String monthDropDownOption = "//select[@id='register-dob-month']/option[text()='%s']";
  30. private By dayField = By.cssSelector("input#register-dob-day");
  31. private By yearField = By.cssSelector("input#register-dob-year");
  32. private String sexRadioButton = "//li[@id='li-gender']//label[normalize-space()='%s']/input";
  33. //private By sexRadioButton = By.cssSelector("li#li-gender"); // for selenium - //li[@id='li-gender']/label[normalize-space()='%s']/input";
  34. private By shareCheckbox = By.cssSelector("input#register-thirdparty");
  35. private By registerButton = By.cssSelector("a#register-button-email-submit");
  36. private By errorLabel = By.xpath("//label[@class='has-error' and string-length(text())>0]");
  37. private String errorByText = "//label[@class=\"has-error\" and text()=\"%s\"]";
  38.  
  39. // public SignUpPage openPage() {
  40. // Selenide.open("/");
  41. // return this;
  42. // }
  43.  
  44. public SignUpPage typeEmail(String email) {
  45. find(emailField).sendKeys(email);
  46. // $(emailField).sendKeys(email); - selenide
  47. //driver.findElement(emailField).sendKeys(email); - selenium
  48. return this;
  49. }
  50.  
  51. public SignUpPage typeConfirmEmail(String email) {
  52. find(confirmEmailField).sendKeys(email);
  53. //$(confirmEmailField).sendKeys(email); - selenide
  54. //driver.findElement(confirmEmailField).sendKeys(email); - selenium
  55. return this;
  56. }
  57.  
  58. public SignUpPage typePassword(String password) {
  59. find(passwordField).sendKeys(password);
  60. // driver.findElement(passwordField).sendKeys(password);
  61. return this;
  62. }
  63.  
  64. public SignUpPage typeName(String name) {
  65. find(nameField).sendKeys(name);
  66. //driver.findElement(nameField).sendKeys(name);
  67. return this;
  68. }
  69.  
  70. public SignUpPage setMonth(String month) {
  71. // find(monthDropDown).selectOption(month); // метод дропдауна в селендие
  72. //driver.findElement(monthDropDown).click();
  73. //клик на дропдаун, ожидаение выпадающего списка
  74.  
  75. //new WebDriverWait(driver, 5).until(ExpectedConditions.visibilityOfElementLocated(By.xpath(String.format(monthDropDownOption, month)))).click();
  76. //driver.findElement(By.xpath(String.format(monthDropDownOption, month))).click();
  77. find(monthDropDown).click();
  78. find(By.xpath(format(monthDropDownOption, month))).waitUntilVisible().click();
  79. return this;
  80. }
  81.  
  82. public SignUpPage typeDay(String day) {
  83. find(dayField).sendKeys(day);
  84. //driver.findElement(dayField).sendKeys(day);
  85. return this;
  86. }
  87.  
  88. public SignUpPage typeYear(String year) {
  89. find(yearField).sendKeys(year);
  90. //driver.findElement(yearField).sendKeys(year);
  91. return this;
  92. }
  93.  
  94. public SignUpPage setSex(String value) {
  95. find(By.xpath(format(sexRadioButton, value))).click();
  96. // driver.findElement(By.xpath(String.format(sexRadioButton, value))).click();
  97. return this;
  98. }
  99.  
  100. public SignUpPage setShare(boolean value) {
  101. //find(shareCheckbox).;
  102. WebElement checkbox = find(shareCheckbox);
  103. if(!checkbox.isSelected() == value) {
  104. checkbox.click();
  105. }
  106. return this;
  107. }
  108.  
  109.  
  110. public void clickSignUpButton(){
  111. //$(registerButton).waitWhile(Condition.disabled, 5000).click; - ждать 5 секунд пока кнопка задихейблена, когда активна - клик
  112.  
  113. find(registerButton).click();
  114. //driver.findElement(registerButton).click();
  115.  
  116. }
  117.  
  118. public List<WebElementFacade> getErrors() {
  119. System.out.println("Поля с ошибками" + findAll(errorLabel));
  120. return findAll(errorLabel);
  121. }
  122.  
  123.  
  124. public boolean isErrorVisible(String message ) {
  125. return findAll(By.xpath(format(errorByText, message))).size() > 0
  126. && findAll(By.xpath(format(errorByText, message))).get(0).isDisplayed();
  127. }
  128.  
  129. public String getErrorByNumber(int number) {
  130. return getErrors().get(number - 1).getText();
  131. }
  132.  
  133. }
Add Comment
Please, Sign In to add comment