将 ssl 证书添加到硒网络驱动程序
2022-09-03 15:35:58
我使用硒与chromeDriver进行端到端测试。要测试的网站需要 SSL 证书。当我手动打开浏览器时,有一个弹出窗口,让我选择已安装的证书。不同的测试访问不同的 URL,并且还需要不同的证书。但是,如果我在无外设模式下运行测试,则不会弹出。因此,我需要一种方法来编程设置用于当前测试的证书(例如,设置文件)。.pem
我怎样才能做到这一点?我尝试设置一个浏览器Mob代理,然后将其配置为硒中的代理 - 但是,这似乎没有任何作用...有没有更好的方法?我做错了什么?以下是我尝试过的方法:
PemFileCertificateSource pemFileCertificateSource = new PemFileCertificateSource(
new File("myCertificate.pem"),
new File("myPrivateKey.pem"),
"myPrivateKeyPassword");
ImpersonatingMitmManager mitmManager = ImpersonatingMitmManager.builder()
.rootCertificateSource(pemFileCertificateSource)
.build();
BrowserMobProxy browserMobProxy = new BrowserMobProxyServer();
browserMobProxy.setTrustAllServers(true);
browserMobProxy.setMitmManager(mitmManager);
browserMobProxy.start(8080);
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setProxy(ClientUtil.createSeleniumProxy(browserMobProxy));
WebDriver webDriver = new ChromeDriver(chromeOptions);
// use the webdriver for tests, e.g. assertEquals("foo", webDriver.findElement(...))