2017-08-10 75 views
0

目前我正在開發一個項目,在那裏我正面臨Windows身份驗證彈出窗口。爲了處理這個彈出我使用機器人類。它也工作正常。但是我的主要問題是,同樣的彈出窗口動態地一次又一次地出現。我怎樣才能控制這個?任何人都可以在這方面幫助我嗎?我寫了下面的代碼來控制一個Windows彈出窗口。Windows身份驗證彈出問題

StringSelection username = new StringSelection("Username"); 
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null);    
       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 pwd = new StringSelection("Password"); 
       Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pwd, 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); 
      } 

回答

1

您可以創建/修改爲如下,並嘗試方法isAlertPresent。它可能會幫助你。

下面的方法如果存在

public boolean isAlertPresent() { 
    try{ 
     WebDriverWait wait = new WebDriverWait(driver, 5); 
     wait.until(ExpectedConditions.alertIsPresent()); 
     return true; 
    } 
    catch (NoAlertPresentException noAlert) { 
     return false; 
    } 
    catch (TimeoutException timeOutEx){ 
     return false; 
    } 
} 

提醒這是一個認證彈出先確認。你可以像下面處理: -

WebDriverWait wait = new WebDriverWait(driver, 10);  
Alert alert = wait.until(ExpectedConditions.alertIsPresent());  
alert.authenticateUsing(new UserAndPassword(username, password)); 

OR

driver.get("http://UserName:[email protected]"); 

OR

如果上面沒有工作,那麼JavascriptExecutor爲你工作。請注意,您應該在點擊調用警報的事件之前執行它。

((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return true; }"); 

注意: - 請勿在點擊調用警報確認框的事件後使用它。上面的代碼默認設置的確認框,真正意味着你接受/點擊確定所有的確認對話框,網頁上如果調用

希望它會幫助你:)

+0

嗨,你給的代碼,它不適合我。其實我面臨的問題,這不是基於網頁彈出,但它是基於Windows彈出。你能否在這方面幫助我,不管我給出的代碼是哪一種,這可以控制基於動態窗口的彈出窗口? – Smriti

+0

嗨Shubham,你可以在這方面幫助我嗎?其實我在硒中很新。期待你的迴應。 – Smriti

+0

你可以添加你收到的錯誤嗎? –