我试图使用Playwright编写几个设备的脚本,以调整它们的配置设置。某些型号的设备通过Chrome中的弹出对话框请求身份验证。
这些弹出框不会触发Playwright中的弹出或对话框事件。我无法瞄准他们进行互动。门户网站是用jQuery构建的。在某些设备上,JSON数据传输对象是公开的,因此我可以调用
await page.evaluate(() => {
jQuery.ajaxSettings.username = 'uname';
jQuery.ajaxSettings.password = 'pword';
})
要填写正确的字段,然后点击登录按钮,它将验证我没有触发弹出窗口。在其他设备上,它发送一个http请求,触发重定向到一个看似空白的set_password. html页面。然后弹出窗口被触发。重定向页面上没有加载JS或任何HTML。
我如何才能通过此身份验证步骤?如果我在浏览器中通过自己,光标将自动放置在文本框中。但是剧作家不这样做,所以我不能使用键盘。我不知道我是否可以把鼠标移到这个上面并选择它。如上所述,这些弹出窗口似乎不会触发Playwright中的对话框或弹出事件。我试着查看请求和响应头,看看它是如何以及在哪里传输凭证的,这样我就可以模仿它,但我很难找到正确的点。有什么想法吗?
2条答案
按热度按时间ghg1uchk1#
看起来像是HTTP验证。您可以通过创建新的浏览器上下文并在其中传递
httpCredentials
来进行身份验证。参考
oaxa6hgo2#
只需简单地将该页称为
http://uname:email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)
这将授权调用并打开没有对话框的页面