使用 Selenium 处理浏览器级别的身份验证

软件测试
2022-01-14 19:17:56

我正在自动化一个包含浏览器级别身份验证的应用程序。

当我打开应用程序时,浏览器执行基本身份验证,即提示输入用户名和密码。如何使用 Selenium 处理这种情况?

4个回答

使用
http://username:password@site.com/page
而不是
http://site.com/page.

这里有一种处理方法,创建浏览器配置文件并检查提醒密码。通过在执行前调用配置文件,下次不会再询问您的身份验证。让我知道它是否不起作用。

Selenium 中的基本身份验证处理得不是很好,老实说,我不确定它是否应该是这样(尽管它会很好)。我一直在使用的解决方案是在 autoIT 或类似的东西中创建一个能够访问身份验证框的脚本。本质上,创建查找身份验证框的脚本,输入凭据,单击 OK 或按 Enter,然后结束或终止此子脚本。

它很脏,不理想,但它是迄今为止我发现的可以与多个浏览器一起使用的最佳解决方案。

如果您提供有关您使用的语言/平台的更多信息会更好,但是,无论如何......

Selenium 在处理这样的窗口方面并不是很好,所以

如果您使用的是 Java,请查看Robot 类

如果您使用的是 Ruby、C#、Java,请查看WatiRWatiNWatiJ所有这些库都可以通过其标题附加到现有浏览器并处理弹出对话框。我并不是说用 WatiN 替换 Selenium,但你可以使用这个特定目的的库。

同样对于 .NET,您可以使用Windows UI 自动化

当然,您可以使用AutoItAutoHotkey最简单的方法是将对话处理代码编译成 .exe 文件,并在需要时使用特定参数运行它。