如何使用selenium(chrome驱动程序)取消或自动关闭客户端证书选择对话框?
我无法使用此证书,因为它存储在芯片卡上,我必须输入PIN。如果没有可用的芯片卡,我们的网站将使用基于凭据的登录,我想对此进行测试。
lf5gs5x21#
我找到了解决这个问题的办法:必须使用镶边参数- AutoSelectCertificateForUrls将以下内容添加到Windows注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls\1 = "{"pattern":"https://yoursite.com","filter":{}}"
yfwxisqw2#
在linux中,您需要以下文件集:
$HOME/etc/opt/chrome/policies/managed/auto_select_certificate.json
具有以下内容:
{ "AutoSelectCertificateForUrls": [ "{\"pattern\":\"*\",\"filter\":{}}" ] }
通过此设置,它应该自动允许每个已安装的客户端证书。关于如何使用Docker在C#中解决此问题的详细文章可以在我在此处撰写的一篇文章中找到:https://sgedda.medium.com/running-selenium-with-chromedriver-together-with-client-certificate-set-in-headful-mode-with-net-a79bde19e472
uajslkp63#
尝试使用“--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());
gxwragnw4#
请尝试以下代码。它对我很有效:
ChromeOptions chromeOptions = new ChromeOptions(); chromeOptions.addArguments("--ignore-urlfetcher-cert-requests"); webDriver = New ChromeDriver(chromeOptions);
4条答案
按热度按时间lf5gs5x21#
我找到了解决这个问题的办法:必须使用镶边参数- AutoSelectCertificateForUrls
将以下内容添加到Windows注册表:
yfwxisqw2#
在linux中,您需要以下文件集:
具有以下内容:
通过此设置,它应该自动允许每个已安装的客户端证书。
关于如何使用Docker在C#中解决此问题的详细文章可以在我在此处撰写的一篇文章中找到:https://sgedda.medium.com/running-selenium-with-chromedriver-together-with-client-certificate-set-in-headful-mode-with-net-a79bde19e472
uajslkp63#
尝试使用“--ignore-certificate-errors”和“--ignore-urlfetcher-cert-requests”参数启动chrome。
gxwragnw4#
请尝试以下代码。它对我很有效: