如何使用selenium(chrome驱动程序)抑制或自动关闭客户端证书选择对话框?
我无法使用此证书,因为它存储在芯片卡上,我必须输入PIN码。如果没有可用的卡,我们的网站使用基于凭据的登录,我想测试它。
答案 0 :(得分:1)
在linux中你需要这个文件集:
$HOME/etc/opt/chrome/policies/managed/auto_select_certificate.json
有了这个内容:
{
"AutoSelectCertificateForUrls": [ "{\"pattern\":\"*\",\"filter\":{}}" ]
}
有了这个设置,它应该自动允许每个安装的客户端证书。
关于如何在 C# 中使用 Docker 解决它的详细文章可以在我在这里写的一篇文章中找到: https://sgedda.medium.com/running-selenium-with-chromedriver-together-with-client-certificate-set-in-headful-mode-with-net-a79bde19e472
答案 1 :(得分:0)
尝试使用“--ignore-certificate-errors”和“--ignore-urlfetcher-cert-requests”参数启动chrome。
ChromeOptions opts = new ChromeOptions();
opts.addArguments("ignore-certificate-errors","ignore-urlfetcher-cert-requests");
WebDriver driver = new ChromeDriver(opts);
driver.get("http://www.google.com");
System.out.println("Title:" + driver.getTitle());
答案 2 :(得分:0)
我找到了解决此问题的方法: 您必须使用chrome参数-AutoSelectCertificateForUrls
将此添加到Windows注册表中:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls\1 = "{"pattern":"https://yoursite.com","filter":{}}"