在Chrome中,单击某个链接会打开一个新选项卡,其中包含“需要身份验证”弹出窗口。正如您所看到的,它具有“用户名”和“密码”以及“登录”和“取消”按钮。
使用Java代码,如何在此弹出窗口中输入值(用户名和密码)?因为我无法获取用户名和密码的定位器,所以此处的警报方法也不起作用。
我试过的代码:
public static void switchToalert() {
driver.switchTo().alert();
// Selenium-WebDriver Java Code for entering Username & Password as // below:
driver.findElement(By.id("Username")).sendKeys("userName");
driver.findElement(By.id("Password")).sendKeys("myPassword");
driver.switchTo().alert().accept();
driver.switchTo().defaultContent();
}
由于 戈文德
答案 0 :(得分:2)
使用Selenium Webdriver处理Windows身份验证
http://username:password@yourWebURL
##example##
http:
//GuravPraveen:Passwrd123@YourURL
driver.get("http://GuravPraveen:Passwrd123@www.xyz.com/signin");
答案 1 :(得分:0)
我非常成功地使用的方法是设置嵌入式Browsermob代理服务器(使用Java代码)并注册RequestInterceptor
以拦截所有传入请求(与主机/ URL模式匹配)问题)。
如果您的请求需要基本身份验证,add an Authorization
HTTP标头需要凭据('基本'+ Base64编码'用户:传递'字符串。所以'对于' foo:bar'你设置值Basic Zm9vOmJhcg==
)
启动服务器,将其设置为Web代理for Selenium traffic,当发出需要身份验证的请求时,代理将添加标头,浏览器将看到它,验证凭据,而不需要弹出对话框。
根本不需要处理对话框。另一个好处是,因为它是纯粹的HTTP解决方案,所以在所有浏览器和操作系统中都能正常工作。