在Playwright测试中强制Edge显示登录提示,并使用提供的HTTP凭据进行身份验证
我正在尝试在Edge中测试我的应用,该应用受Windows身份验证保护,通过传递 httpCredentials 选项。
{
name: 'Microsoft Edge',
use: {
...devices['Desktop Edge'],
viewport: { width: 1920, height: 1080 },
channel: 'msedge',
headless: true,
httpCredentials: {
username: process.env['USERNAME']!,
password: process.env['PASSWORD']!
}
}
然而,当运行Playwright测试时,原生浏览器的登录提示并未出现(换句话说,USERNAME 和 PASSWORD 环境变量的值从未被使用——测试改为使用当前已登录的用户进行身份验证)。
有没有办法强制Edge始终显示登录提示,并使用提供的凭据进行身份验证?
解决方案
Edge启动标志,文档见 这里 和 这里,它会清空允许协商身份验证的服务器列表,从而强制显示登录提示:
在Playwright Edge项目配置中:
httpCredentials: ...
launchOptions: { args: ['--auth-server-allowlist=_'] }
为使其生效,必须关闭所有Edge实例。
于是,登录提示现在会始终显示,我的测试也能够使用提供的凭据进行身份验证。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。