我的应用程序使用卡证书身份验证。
就目前而言,根据this GitHub Issue,Playwright 似乎没有提出/建议任何官方解决方案。
我找不到任何解决方法。
这是我尝试过的事情的列表:
browser
或 context
- 不工作launchPersistentContext
提供凭据(仅限 Chromium)-
不工作context.route("**/*")
进行身份验证并使用提供 pfx
agentOptions
字段(有人在 GitHub 中建议的解决方法
问题)-无法弄清楚我做错了什么CDPSession
来使用它的事件处理程序 -
但在我查看 CDP Docs 后,他们似乎公开了基本的 http auth
事件,找不到有关 SSL certificate
事件的任何信息。我还没有尝试过:
Java
或
Python
我已经找到了目前可以完成这项工作的解决方法,但我并不完全满意:
使用
node-key-sender
npm 库执行 Windows 级键盘操作:
要求:
Java
(准确地说是jre
)必须安装并添加到用户/系统环境变量中
安装
npm i node-key-sender
用法
// Warning! Do not touch the keyboard while this code run!
const ks = require("node-key-sender");
page.goto("<my_url>");
ks.sendKey("enter");
此示例导航到应用程序,然后“按”enter 以接受证书。如果有多个证书,可以添加其他键(如 down 或 tab)以选择其他证书。
此解决方案的问题是这样的事实:键盘计时的继电器不可靠,阻止并行执行,需要
Java
,并且您无法确定是否选择了正确的证书,因为您无法按名称选择证书。