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