2015-09-11 4 views
1

Я пытаюсь автоматизировать сценарий входа в систему моего проекта. После попадания в URL-адрес открывается окно проверки подлинности POPUP еще до загрузки страницы. Если мы не пройдем это окно, мы не увидим домашнюю страницу.Selenium Webdriver Обработка всплывающего окна

проблема заключается в том, что после всплывающего окна я не могу проверить элемент с помощью firebug, не позволяя мне щелкнуть в другом месте.

Я пытаюсь обработать окно, но все же элемент управления не идет в текстовое поле имени пользователя и пароля. Я попробовал ручку окна, класс робота, но не работал. Пожалуйста, кто-нибудь может помочь?

вот кусок кода: -

Set<String> handles = driver.getWindowHandles(); // get all window handles 
     System.out.println(handles.size()); 
     Iterator<String> iterator = handles.iterator(); 
     while (iterator.hasNext()){ 
      subWindowHandler = iterator.next(); 
     } 
     driver.switchTo().window(subWindowHandler); 
also the robot class:- 

Robot rb = new Robot(); 

       //Enter user name by ctrl-v 
       StringSelection username = new StringSelection("myusername"); 
       Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null); 
       Thread.sleep(2000); 
river.switchTo().window(mainHandle); 
       rb.keyPress(KeyEvent.VK_A); 
        rb.keyRelease(KeyEvent.VK_A); 
        rb.keyPress(KeyEvent.VK_M); 
        rb.keyRelease(KeyEvent.VK_M); 
       rb.keyPress(KeyEvent.VK_CONTROL); 
       rb.keyPress(KeyEvent.VK_V); 
       rb.keyRelease(KeyEvent.VK_V); 
       rb.keyRelease(KeyEvent.VK_CONTROL); 


       //tab to password entry field 
       rb.keyPress(KeyEvent.VK_TAB); 
       rb.keyRelease(KeyEvent.VK_TAB); 
       Thread.sleep(2000); 

       //Enter password by ctrl-v 
       StringSelection pass = new StringSelection("password"); 
       Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pass, null); 
       rb.keyPress(KeyEvent.VK_CONTROL); 
       rb.keyPress(KeyEvent.VK_V); 
       rb.keyRelease(KeyEvent.VK_V); 
       rb.keyRelease(KeyEvent.VK_CONTROL); 

       //press enter 
       rb.keyPress(KeyEvent.VK_ENTER); 
       rb.keyRelease(KeyEvent.VK_ENTER); 

       //wait 
       Thread.sleep(5000); 

ответ

0

Ее не возможно автоматизировать проверку подлинности на основе браузера с помощью Selenium.

  • Если проверка подлинности HTTP на основе затем попробуйте открыть URL, используя формат - http://username:[email protected]/ вместо example.com.

  • Если вы все еще хотите автоматизировать его, используйте сторонние плагины, такие как AutoIt, чтобы выполнить его, что работает вместе с Selenium. AutoIt используется для автоматизации настольных приложений на базе Windows, включая браузеры. Вот несколько ссылок, которые вы можете обратиться к -

  • Также вы можете использовать плагин для Firefox, который проверяет подлинность всплывающих окон автоматически, при открытии URL , Но это ручная настройка, и вы должны выполнить аутентификацию один раз, чтобы плагин помнил об этом. Here's one of them.

Надеюсь, это поможет.

+0

Здравствуйте Гириш, то первый вариант не работает я пытался до загрузки страницы, которая приходит аутентификации всплывающая. Во-вторых, как мы можем использовать AutoIT с Selenium Webdriver для автоматизации, которую можно описать. – Coolguy

+0

Это очень большой процесс. Обновленный ответ с несколькими ссылками, которые могут помочь вам в автоматизации. –

0

Вы можете сделать одну вещь. можешь попробовать.

Если нажать кнопку ESC, то приложение прекратит обработку много раз.

после нажатия на событие используйте этот код ниже: -

Robot r = new Robot(); 
r.keyPress(KeyEvent.VK_ESCAPE); 
r.keyRelease(KeyEvent.VK_ESCAPE); 

выше код будет нажать ESC для вас. Теперь вы можете найти время, чтобы найти элемент.

Надеется, что это поможет вам :)

+0

Hi Shubham, Я не могу проверить элемент во всплывающем окне аутентификации. он сначала спрашивает, чтобы указать ввод этого всплывающего окна. – Coolguy

Смежные вопросы