Я тестирую веб-сайт, для которого требуются персональные 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