如何在警报中填写用户名和密码字段?当我单击链接时,将打开另一个带有警报身份验证的窗口。我无法切换到警报。我收到超时异常。我使用了这段代码:
// two windows on browser
Set<String> window = driver.getwindowhandles();
Iterator index = window.ierator();
String Parentwindow = index.next();
String Childwindow = index.next();
driver.switchto().window(Childwindow);
// popup on child window
Alert alert = driver.switchto().alert();
alert.sendkeys("username");
alert.sendkeys("password");
答案 0 :(得分:1)
这个问题已经被回答过了。 Selenium具有内置功能,可用于身份验证弹出窗口。
使用隐式Wait
(此Wait
等待时间到给定条件变为true
的时间),您可以访问Alert
并通过登录名-使用authenticateUsing()
的凭据:
WebDriverWait wait = new WebDriverWait(driver, 10);
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
alert.authenticateUsing(new UserAndPassword(username, password));
另一种方法是在访问URL时直接提供用户名和密码,这会完全绕过Alert
:
driver.get("http://UserName:Password@Example.com");
请参考以下问题:How to handle authentication popup with Selenium WebDriver using Java