2017-08-10 128 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

你可以添加你收到的错误吗? –