gpt4 book ai didi

java - 如何在 Java 中使用 Selenium WebDriver 处理身份验证弹出窗口

转载 作者:太空宇宙 更新时间:2023-11-04 12:48:18 25 4
gpt4 key购买 nike

我正在尝试使用以下代码处理身份验证弹出窗口:

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

当我执行测试时,页面显示身份验证弹出窗口,并且光标在用户名上持续闪烁。并且不再继续进行。 10 秒后,我收到超时异常 org.openqa.selenium.TimeoutException

完全异常:线程“main”org.openqa.selenium.TimeoutException 中出现异常:WAITING警报出现 10 秒后超时

我尝试将超时时间增加到 100。还尝试添加 Thread.sleep 语句但这行不通

最佳答案

我非常成功地使用的方法是设置一个嵌入式 Browsermob代理服务器(在 Java 代码中)并注册一个 RequestInterceptor 来拦截所有传入请求(与相关主机/URL 模式匹配)。

当您有一个需要基本身份验证的请求时,add an Authorization 包含所需凭据的 HTTP header (“Basic”+ Base64 编码的“user:pass”字符串。因此,对于“foo:bar”,您需要设置值Basic Zm9vOmJhcg==)

启动服务器,将其设置为Web代理for Selenium traffic ,当发出需要身份验证的请求时,代理会添加 header ,浏览器会看到它,验证凭据,而不需要弹出对话框。

您根本不需要处理该对话框。另一个好处是,因为它是纯 HTTP 解决方案,所以它在所有浏览器和操作系统上的工作方式都是相同的。

关于java - 如何在 Java 中使用 Selenium WebDriver 处理身份验证弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com