Selenium Windows身份验证弹出窗口问题
目前我正在从事一个项目,在那里我将面临Windows身份验证弹出窗口。为了处理这个弹出窗口,我使用了Robot类。它也工作得很好。但我的主要问题是,同一个弹出窗口一次又一次地动态出现。我怎样才能控制这一切?在这方面有人能帮我吗?我写了下面的代码来控制一个窗口弹出窗口Selenium Windows身份验证弹出窗口问题,selenium,selenium-webdriver,Selenium,Selenium Webdriver,目前我正在从事一个项目,在那里我将面临Windows身份验证弹出窗口。为了处理这个弹出窗口,我使用了Robot类。它也工作得很好。但我的主要问题是,同一个弹出窗口一次又一次地动态出现。我怎样才能控制这一切?在这方面有人能帮我吗?我写了下面的代码来控制一个窗口弹出窗口 StringSelection username = new StringSelection("Username"); Toolkit.getDefaultToolkit().getSystemClipboard().setCont
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);
}
您可以创建/修改方法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));
或
或
如果上述方法不起作用,那么JavascriptExecutor为您工作。只需注意在单击调用警报的事件之前执行它
((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return true; }");
注意:-单击调用警报确认框的事件后,不要使用它。以上代码默认情况下,将确认框设置为true表示您正在接受/如果调用,请单击该页面上所有确认框上的ok
希望它能帮助您:)您好,您提供的代码对我不起作用。实际上,我面临的问题不是基于web的弹出窗口,而是基于windows的弹出窗口。你能在这方面帮助我吗?我给出的代码,我能控制基于windows的动态弹出窗口吗?嗨,Shubham,你能在这方面帮助我吗,?事实上,我是硒的新手。期待您的回复。
((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return true; }");