2015-09-11 161 views
1

我試圖自動化我的項目的登錄方案。 點擊URL後,即使在頁面加載之前,POPUP認證窗口也會出現。 如果我們沒有通過該窗口,我們看不到主頁。Selenium Webdriver處理彈出式窗口

問題是一旦彈出來我不能使用螢火蟲檢查元素,它不讓我點擊任何其他地方。

我試圖處理窗口,但仍然控制不會進入用戶名和密碼文本框。 我試過窗口句柄,機器人類但不工作。 請有人可以幫忙?

這裏是一段代碼: -

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基於瀏覽器的認證。

希望這會有所幫助。

+0

你好吉瑞什,第一個選項不工作我試過了,在頁面加載之前,身份驗證彈出窗口來了。 第二,我們如何使用Selenium Webdriver AutoIT來實現自動化操作,以便您能夠描述。 – Coolguy

+0

這是一個很大的過程。更新的答案只有幾個可以幫助您實現自動化的鏈接。 –

0

你可以做一件事。你可以嘗試一下。

如果我們按ESC按鈕,然後應用程序停止處理很多次。

點擊事件後,使用此代碼如下: -

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

上面的代碼會按ESC鍵爲您服務。現在你可以花時間找到元素。

希望它能幫助你:)

+0

Hi Shubham, 我無法檢查該身份驗證彈出窗口上的元素。它首先對該彈出框提供輸入。 – Coolguy

相關問題