Я тестирую веб-сайт, который требует личных сертификатов SSL для выполнения определенных действий, таких как вход в систему.
] У меня есть тест Webdriver (Selenium 2.0), который я настроил с помощью прокси:
Proxy localhostProxy = new Proxy();
localhostProxy.setProxyType(Proxy.ProxyType.MANUAL);
localhostProxy.setHttpProxy("www-proxyname:port");
FirefoxProfile profile = new FirefoxProfile();
profile.setProxyPreferences(localhostProxy);
driver = new FirefoxDriver(profile);
И это даст доступ к домашней странице нормально. Затем тест нажимает кнопку входа, вводит правильные учетные данные и нажимает кнопку отправки. На этом этапе браузер переходит в состояние загрузки, и я предполагаю, что это связано с тем, что сертификат SSL отсутствует с моей стороны и, следовательно, не может подключиться к службе входа.
Я искал различные прокси-решения и нашел следующее:
profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateIssuer(true);
Я добавил его в свой код, но, похоже, он не делает то, что я хочу. Я думаю, что ищу способ сообщить WebDriver, что мой ssl-сертификат находится в каталоге x, используйте его при доступе к этому сайту. Кто-нибудь знает, как это сделать?
Мой тестовый код:
@Test
public void userSignsInAndVerifiesDrawerViews(){
driver.get("www.url.com");
waitFor(5000);
driver.findElement(By.xpath("//a[contains(text(), 'Sign in')]")).click();
waitFor(3000);
String username = "seleniumtest";
String password = "seleniumtest1";
driver.findElement(By.id("username")).sendKeys(username);
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.xpath("//signin")).click();
waitFor(30000);
String signInLinkText = driver.findElement(By.xpath("//xpath")).getText();
assertEquals(signInLinkText, username);
}
Спасибо, Beccy