我正在做一个Selenium项目,我需要测试的系统使用的是SSL证书。每次当我尝试登录时,我们都会看到这个“选择证书”窗口,这是我们无法用WebDriver处理的。
的数据
我试过使用AutoItx点击确定按钮,如下所示。但Send("{ENTER}")
不是最好的选择。
if (AutoItX.WinWaitActive("data:, - Google Chrome", "", 10) == 0)
{
AutoItX.WinActivate("data:, - Google Chrome");
AutoItX.Send("{ENTER}");
}
字符串
有没有一种方法可以使用AutoItX点击OK按钮?或者有没有一种方法可以在使用Capabilities定义ChromeDriver时加载此证书?
2条答案
按热度按时间eqqqjvef1#
Chrome版本59.0.3071.86(64位),Win 7企业版:
创建注册表项:
字符串
在这里创建一个新的字符串值(REG_SZ),名称为1
作为值数据输入:
型
This is how the registry then looks like.
有关此密钥的更多信息,我发现:
值必须是字符串化JSON字典的数组。每个字典必须具有{“pattern”:“$URL_PATTERN”,“filter”:$FILTER },其中$URL_PATTERN是内容设置模式。$FILTER限制浏览器将自动选择哪些客户端证书。与筛选器无关,只选择与服务器的证书请求匹配的证书。如果$FILTER具有{“ISSUER”:{“CN”:“$ISSUER_CN”} },另外只选择由CommonName为$ISSUER_CN的证书颁发的客户端证书。如果$FILTER为空字典{},则客户端证书的选择不会受到额外限制。
在Automatically select client certificates for these sites上
Chrome版本87.0.4280.141(64位),Win 10企业版:
创建注册表项:
型
在这里创建一个新的字符串值(REG_SZ),名称为1
作为值数据输入:
型
x1c 0d1x的数据
MyCompanyCA和子域名mycompany.com必须替换为相应的URL和发行公司。
fykwrbwg2#
如果您有多个证书,并且您要选择的证书不是第一个,则需要应用过滤器。
https://chromeenterprise.google/policies/#AutoSelectCertificateForUrls有关于过滤器值的深入描述,但您可能对其中的大多数不感兴趣,可以用途:
字符串
将**[Issued By]**替换为您的客户端证书的颁发者。我这辈子都无法让URL模式与比[*.]更具体的东西一起工作,它匹配任何URL。