Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package utils
- import java.awt.Robot
- import java.awt.event.KeyEvent
- import java.util.concurrent.TimeUnit
- import org.openqa.selenium.chrome.{ChromeDriver, ChromeOptions}
- import org.openqa.selenium.support.ui.{ExpectedConditions, WebDriverWait}
- import org.openqa.selenium.{By, JavascriptExecutor, WebDriver, WebElement}
- class Selenium {
- val chromeDriver = "webdriver.chrome.driver"
- val chromeDriverUrl = "C:\\Users\\Luzak\\Desktop\\Airbnb\\chromedriver.exe"
- val userDataDir = "user-data-dir=C:/Users/Luzak/AppData/Local/Google/Chrome/User Data"
- System.setProperty(chromeDriver, chromeDriverUrl)
- var options = new ChromeOptions
- options.addArguments("start-maximized").addArguments(userDataDir)
- var driver = new ChromeDriver(options)
- def waitForText(text: String): WebElement = {
- val register = new WebDriverWait(driver, 5).until(
- ExpectedConditions.visibilityOfElementLocated(
- By.xpath("//*[contains(text(), '" + text + "')]"))
- )
- driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS)
- register
- }
- def textFromKeyboard(key: String, value: String, text: String) {
- driver.findElement(By.xpath("//input[@" + key + "='" + value + "']")).sendKeys(text)
- }
- def newWindow(link: String) {
- (driver: JavascriptExecutor).executeScript("window.open('" + link + "');")
- val tabs = driver.getWindowHandles.toArray
- driver.switchTo().window(tabs(1).toString)
- }
- def closeLastWindow(): Unit = {
- val robot = new Robot
- robot.keyPress(KeyEvent.VK_CONTROL)
- robot.keyPress(KeyEvent.VK_W)
- }
- def switchActiveWindow(active: Int) {
- val tabs = driver.getWindowHandles.toArray
- driver.switchTo().window(tabs(active).toString)
- }
- def close() {
- driver.close()
- }
- def getDriver: WebDriver = {
- driver
- }
- }
- #############################################################
- package windows;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import utils.Config;
- import utils.Selenium;
- import java.awt.*;
- public class Register {
- private WebDriver driver;
- private Selenium selenium;
- private String actualMail;
- public Register(Selenium selenium) {
- driver = selenium.getDriver();
- this.selenium = selenium;
- }
- public void start() throws AWTException {
- homePage();
- chooseEmailValidation();
- actualMail = getRandomMail();
- selenium.switchActiveWindow(0);
- fillTheRegistration();
- //selenium.close();
- }
- private void homePage() {
- driver.get(Config.link());
- WebElement register = selenium.waitForText("Zarejestruj się");
- register.click();
- }
- private void fillTheRegistration() {
- selenium.textFromKeyboard("type","email",actualMail);
- selenium.textFromKeyboard("name","user[first_name]","Franciszek");
- selenium.textFromKeyboard("name","user[last_name]","Poldex");
- selenium.textFromKeyboard("name","user[password]",Config.accountPassoword());
- }
- private void chooseEmailValidation() {
- WebElement register = selenium.waitForText("Zarejestruj się przy pomocy adresu e-mail");
- register.click();
- }
- private String getRandomMail() throws AWTException {
- selenium.newWindow("http://10minutemail.net/new.html");
- String result = driver.findElement(By.id("fe_text")).getAttribute("value");
- selenium.closeLastWindow();
- return result;
- }
- }
- ##################################
- import utils.Selenium
- import windows.Register
- object Boot extends App {
- val selenium = new Selenium
- registerScenario()
- private def registerScenario(): Unit = {
- val register = new Register(selenium)
- register.start()
- }
- }
- #############################
- package utils
- object Config {
- val link = "http://airbnb.pl"
- val accountPassoword = "cr3@tedAccountM@$t3rP@$$"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement