Playwright无法处理浏览器内置PFX身份验证(SSL_CLIENT_AUTH_CERT)证书弹窗问题求助
Playwright无法处理浏览器内置PFX身份验证(SSL_CLIENT_AUTH_CERT)证书弹窗问题求助
我遇到了一个棘手的问题:使用Playwright 1.50.0版本搭配最新版Chromium浏览器时,没办法自动处理浏览器弹出的「选择证书」窗口,也没法点击窗口上的「确定」按钮。
先贴出我的代码供大家参考:
import { test } from '@playwright/test'; import { defineConfig } from '@playwright/test'; const path = require('path'); const fs = require('fs'); export default defineConfig({ use: { clientCertificates: [{ origin: 'https://t01:8443/Ter/#/login', pfxPath: 'C:/o/tk/cert/t-lp-tre/t-lp-truststore.p12', passphrase: 'tore', }], }, }); // Main login function async function login(browser, username, password) { console.log('Starting login process...'); const context = await browser.newContext({ ignoreHTTPSErrors: true, }); const page = await context.newPage(); await page.goto("https://t01:8443/Ter/#/login"); console.log('Navigating to the login page...'); console.log('Filling in credentials...'); await page.fill('input[placeholder="Username"]', username); await page.fill('input[placeholder="Password"]', password); await page.click('button[type="submit"]'); await page.waitForLoadState('load'); console.log(`${username} logged in successfully`); } test('Run Tests with Parallel Users', async ({ browser }) => { const dataPath = 'testdata/testdata_2Usr.json'; const testData = await fs.promises.readFile(dataPath, 'utf-8'); const jsonData = JSON.parse(testData); for (const user of jsonData) { const { username, password } = user; await login(browser, username, password); } });
我已经尝试过参考相关解决方案,但还是无法处理这个TLS客户端证书弹窗。甚至试过用AutoIT这类第三方工具,依然没法点击弹窗上的「确定」按钮。
想请教各位大佬:
- 有没有可行的办法能自动点击这个弹窗上的「确定」按钮?
(我刚接触Playwright和JavaScript,任何建议都非常感谢!)
补充说明:
- 我使用的p12证书是有效的,如果手动点击弹窗上的确定按钮,就能正常进入网页。
- 附上弹窗的参考截图:

备注:内容来源于stack exchange,提问作者Finch
相关产品推荐
相关产品推荐

