当前位置: 首页 > 知识库问答 >
问题:

如何在使用Selenium web driver for Chrome浏览器执行自动化测试时绕过NTLM身份验证弹出窗口?

荣沈义
2023-03-14

我使用下面的python代码来绕过NTLM弹出窗口。

chromedriver = webdriver.Chrome(executable_path=chromedriver_path, chrome_options=options)
chromedriver.get("https://username:password@url.com")

弹出窗口无法绕过,仍然存在,测试中断。

共有2个答案

夹谷茂
2023-03-14

正如@BhuvaneshMani在关于这个答案的评论中提到的那样。。。

您需要观察NTLM是如何进行身份验证的。(

找到身份验证调用后,请使用该URL!

以@BhuvaneshMani为例:

例如,应用url可能是app.url但是点击url后,它重定向到auth.server.url.所以如果你追加用户名和密码到app.url它不会工作。应该追加到auth.server.url.

因此,您的代码应该如下所示:

driver = webdriver.Chrome(executable_path=chromedriver_path, chrome_options=options)
driver.get("https://username:password@auth.server.com")

或者(我发现大多数身份验证调用都是到服务器端口的同一个URL:port: 8080/auth/log

driver.get("https://username:password@url.com:8080/auth/login")

希望这对你有帮助!

戚飞
2023-03-14

当浏览器将域分隔符\转换为/并且凭据无效时,您可能会面临域登录问题。使用编码分隔符\,它会工作。

浏览器将转换https://domain\用户名:password@URLhttps://domain/username:password@URL

请求的用户编码分隔符
https://domain\用户名:password@URL=

 类似资料:
  • 在此处输入图像描述通过第一个URL,我单击登录(如图所示),这将导致另一个URL,我需要在其中输入凭据。但在该页面之前,我看到一个由浏览器生成的弹出窗口,Selenium无法找到它。在此处输入图像描述。我的chrome浏览器版本是61.0.3163.100(官方版本)(64位) 我尝试使用以下方法: > JavaScript 对;}"); 自动 机器人类 还试图通过在URL中输入用户名和密码来浏览

  • 问题内容: 我正在尝试使用Apache / Jakarta HttpClient 4.1.1使用给定的凭据连接到任意网页。为了测试这一点,我在运行只有一次身份验证模式的开发机上安装了IIS 7.5的最小安装。基本身份验证工作正常,但是每当我尝试登录时,摘要和NTLM都会返回401错误消息。这是我的代码: 我在Fiddler中注意到的一件事是Firefox与HttpClient发送的哈希值不同,这使

  • 要做什么? 我们在 Sharepoint(企业)服务器上部署了一个应用程序,该应用程序使用 Windows 凭据登录到该应用程序。 > 应用程序URL格式:http://testmachine:1000/sites/test/ 视窗凭据格式: user_id@domain.co.in 目标是为如此数量的用户在应用程序上执行负载/性能测试(尤其是登录功能)。 通常,当我在Firefox/IE中点击应

  • 我在量角器中有我目前的e2e测试套件。 为了更新它以在无头chrome中运行,我更新了我的量角器版本,这反过来又更新了我的webdriver manager,这反过来又将chromedriver版本更新为最新版本,即2.34 > 在无头环境中运行测试时,测试工作正常。 在chrome本地运行测试时,测试将启动- 它不允许做任何其他事情,因为chrome automation浏览器实例经常出现。 我

  • 问题内容: 有谁知道在自动化过程中使用Selenium或任何其他工具来处理浏览器身份验证吗? 问题答案: 警报方法authenticateUsing() 使您可以跳过“ Http基本身份验证”框。 从Selenium 3.4开始,它仍处于测试阶段 现在,仅针对 InternetExplorerDriver

  • 问题内容: 我正在尝试使用以下代码处理身份验证弹出窗口: 当我执行测试时,页面会显示身份验证弹出窗口,并且仍会加载直到我单击“取消”按钮。那一刻,我可以访问下一页,这意味着身份验证成功,但仍然始终显示身份验证弹出窗口 问题答案: 警报方法使你可以跳过“ Http基本身份验证”框。 从Selenium 3.4开始,它仍处于beta版本 目前,仅针对

  • 我正在使用C#在selenium web驱动程序中为Chrome浏览器编写一个自动化脚本。我陷入了一个场景:多个选项卡在同一浏览器中打开,我需要导航到浏览器的第一个选项卡,并需要在“身份验证”对话框中重新输入登录凭据。 授权窗口截图如下: 我无法导航到第一个选项卡,也无法传递用户名 执行上述代码后,将出现以下错误: WebDriver等待有一些无效的参数。参数2:不能从int转换为System.时

  • 我试图用Laravel的护照测试身份验证,没有办法...总是收到401的客户端是无效的,我会告诉你我试过什么: 我的phpunit配置是一个来自基地与拉威尔 我方便的护照认证用于测试目的