Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.85 KB | None | 0 0
  1. public PageObject login(Credentials credentials) {
  2.  
  3.         String usernameValue = (String) AbstractStepsHolder.getVariable(StoriesRunner.USER_LOGIN_VAR);
  4.         if (usernameValue == null)
  5.             usernameValue = credentials.getUsername();
  6.         String passwordValue = (String) AbstractStepsHolder.getVariable(StoriesRunner.USER_PASSWORD_VAR);
  7.         if (passwordValue == null)
  8.             passwordValue = credentials.getPassword();
  9.  
  10.         UtilsSteps.waitForPageLoaded(StoriesRunner.getWebDriver());
  11.         LoginPage page = AbstractStepsHolder.getCurrentPage();
  12.         page.getField("Логин").clear();
  13.         page.getField("Логин").type(usernameValue);
  14.         if (System.getProperty("environment").contains("_op")) {
  15.             System.err.println(String.format(">>>>>>>>> Credentials [username=%s, password=%s]", usernameValue, "******"));
  16.         }else{
  17.             System.err.println(String.format(">>>>>>>>> Credentials [username=%s, password=%s]", usernameValue, passwordValue));
  18.  
  19.         }
  20.         page.getField("Пароль").clear();
  21.         page.getField("Пароль").click();
  22.  
  23.         // To close "screen keyboard" with very large z-index
  24.         try {
  25.             StoriesRunner.getWebDriver().manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
  26.             List<WebElementFacade> closeBtns = findAll(By.xpath("//div[@class='ui-keyboard-close-icon']"));
  27.             if (closeBtns.size() > 0)
  28.                 closeBtns.get(0).click();
  29.         } finally {
  30.             StoriesRunner.getWebDriver().manage().timeouts().implicitlyWait(StoriesRunner.getImplicitTimeoutPreference(), TimeUnit.SECONDS);
  31.         }
  32.         page.getField("Пароль").type(passwordValue);
  33.         page.getField("Войти").click();
  34.  
  35.         //При превышении лимита одновременно подключаемых пользователей ждем 3 сек и пробуем снова
  36.         getDriver().manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
  37.         int countAttempts = StoriesRunner.getNumberOfLoginAttempts();
  38.         try {
  39.             while (page.find(By.xpath("//*[contains(text(),'лимит одновременных подключений')]")).isEnabled() && countAttempts > 0) {
  40.                 try {
  41.                     System.out.println("Превышен лимит подключений. Засыпаем на 15 сек");
  42.                     Thread.sleep(15000);
  43.                 } catch (InterruptedException ex) {
  44.                     System.out.print(ex.toString());
  45.                 }
  46.                 getDriver().manage().timeouts().implicitlyWait(StoriesRunner.getImplicitTimeoutPreference(), TimeUnit.SECONDS);
  47.                 page.getField("Логин").clear();
  48.                 page.getField("Логин").type(usernameValue);
  49.                 System.err.println(String.format(">>>>>>>>> Credentials [username=%s, password=%s]", usernameValue, passwordValue));
  50.                 page.getField("Пароль").clear();
  51.                 page.getField("Пароль").click();
  52.                 try {
  53.                     StoriesRunner.getWebDriver().manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
  54.                     List<WebElementFacade> closeBtns = findAll(By.xpath("//div[@class='ui-keyboard-close-icon']"));
  55.                     if (closeBtns.size() > 0)
  56.                         closeBtns.get(0).click();
  57.                 } finally {
  58.                     getDriver().manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
  59.                 }
  60.                 page.getField("Пароль").type(passwordValue);
  61.                 page.getField("Войти").click();
  62.                 countAttempts--;
  63.             }
  64.         } catch (Exception e) {
  65.         } finally {
  66.             getDriver().manage().timeouts().implicitlyWait(StoriesRunner.getImplicitTimeoutPreference(), TimeUnit.SECONDS);
  67.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement