Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. package utils
  2.  
  3. import java.awt.Robot
  4. import java.awt.event.KeyEvent
  5. import java.util.concurrent.TimeUnit
  6.  
  7. import org.openqa.selenium.chrome.{ChromeDriver, ChromeOptions}
  8. import org.openqa.selenium.support.ui.{ExpectedConditions, WebDriverWait}
  9. import org.openqa.selenium.{By, JavascriptExecutor, WebDriver, WebElement}
  10.  
  11. class Selenium {
  12. val chromeDriver = "webdriver.chrome.driver"
  13. val chromeDriverUrl = "C:\\Users\\Luzak\\Desktop\\Airbnb\\chromedriver.exe"
  14. val userDataDir = "user-data-dir=C:/Users/Luzak/AppData/Local/Google/Chrome/User Data"
  15.  
  16. System.setProperty(chromeDriver, chromeDriverUrl)
  17. var options = new ChromeOptions
  18. options.addArguments("start-maximized").addArguments(userDataDir)
  19. var driver = new ChromeDriver(options)
  20.  
  21. def waitForText(text: String): WebElement = {
  22. val register = new WebDriverWait(driver, 5).until(
  23. ExpectedConditions.visibilityOfElementLocated(
  24. By.xpath("//*[contains(text(), '" + text + "')]"))
  25. )
  26. driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS)
  27. register
  28. }
  29.  
  30. def textFromKeyboard(key: String, value: String, text: String) {
  31. driver.findElement(By.xpath("//input[@" + key + "='" + value + "']")).sendKeys(text)
  32. }
  33.  
  34. def newWindow(link: String) {
  35. (driver: JavascriptExecutor).executeScript("window.open('" + link + "');")
  36. val tabs = driver.getWindowHandles.toArray
  37. driver.switchTo().window(tabs(1).toString)
  38. }
  39.  
  40. def closeLastWindow(): Unit = {
  41. val robot = new Robot
  42. robot.keyPress(KeyEvent.VK_CONTROL)
  43. robot.keyPress(KeyEvent.VK_W)
  44. }
  45.  
  46. def switchActiveWindow(active: Int) {
  47. val tabs = driver.getWindowHandles.toArray
  48. driver.switchTo().window(tabs(active).toString)
  49. }
  50.  
  51. def close() {
  52. driver.close()
  53. }
  54.  
  55. def getDriver: WebDriver = {
  56. driver
  57. }
  58. }
  59.  
  60. #############################################################
  61.  
  62. package windows;
  63.  
  64. import org.openqa.selenium.By;
  65. import org.openqa.selenium.WebDriver;
  66. import org.openqa.selenium.WebElement;
  67. import utils.Config;
  68. import utils.Selenium;
  69.  
  70. import java.awt.*;
  71.  
  72. public class Register {
  73.  
  74. private WebDriver driver;
  75. private Selenium selenium;
  76. private String actualMail;
  77.  
  78. public Register(Selenium selenium) {
  79. driver = selenium.getDriver();
  80. this.selenium = selenium;
  81. }
  82.  
  83. public void start() throws AWTException {
  84. homePage();
  85. chooseEmailValidation();
  86.  
  87. actualMail = getRandomMail();
  88. selenium.switchActiveWindow(0);
  89.  
  90. fillTheRegistration();
  91.  
  92. //selenium.close();
  93. }
  94.  
  95. private void homePage() {
  96. driver.get(Config.link());
  97. WebElement register = selenium.waitForText("Zarejestruj się");
  98. register.click();
  99. }
  100.  
  101. private void fillTheRegistration() {
  102. selenium.textFromKeyboard("type","email",actualMail);
  103. selenium.textFromKeyboard("name","user[first_name]","Franciszek");
  104. selenium.textFromKeyboard("name","user[last_name]","Poldex");
  105. selenium.textFromKeyboard("name","user[password]",Config.accountPassoword());
  106. }
  107.  
  108. private void chooseEmailValidation() {
  109. WebElement register = selenium.waitForText("Zarejestruj się przy pomocy adresu e-mail");
  110. register.click();
  111. }
  112.  
  113. private String getRandomMail() throws AWTException {
  114. selenium.newWindow("http://10minutemail.net/new.html");
  115. String result = driver.findElement(By.id("fe_text")).getAttribute("value");
  116. selenium.closeLastWindow();
  117. return result;
  118. }
  119. }
  120.  
  121. ##################################
  122.  
  123. import utils.Selenium
  124. import windows.Register
  125.  
  126. object Boot extends App {
  127. val selenium = new Selenium
  128.  
  129. registerScenario()
  130.  
  131. private def registerScenario(): Unit = {
  132. val register = new Register(selenium)
  133. register.start()
  134. }
  135. }
  136.  
  137. #############################
  138.  
  139. package utils
  140.  
  141. object Config {
  142. val link = "http://airbnb.pl"
  143. val accountPassoword = "cr3@tedAccountM@$t3rP@$$"
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement