Я использую селен для сквозного теста с chromeDriver. Сайты для тестирования требуют ssl сертификата. Когда я вручную открываю браузер, появляется всплывающее окно, которое позволяет мне выбрать установленный сертификат. Различные тесты обращаются к разным URL-адресам, а также требуют разные сертификаты Однако, если я запускаю тесты в автономном режиме, всплывающее окно отсутствует. Поэтому мне нужен способ программно установить сертификат (например, установить файл .pem
), который будет использоваться для текущего теста.
Как мне этого добиться?
Я попытался настроить прокси browserMob , который я затем настроил в качестве прокси в Selen - однако, похоже, это ничего не дает ... Есть ли лучшие подходы? Что я делаю неправильно? Вот что я попробовал:
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(...))