t.me/atinfo_chat Telegram группа по автоматизации тестирования

Тестирование страниц, которые используют протокол https (Selenium Web Driver, C#)


(Julie) #1

Помогите пожалуйста разобраться, как заставить WebDriver (при помощи С#) открывать страницы, работающие по протоколу https. В Chrome они открываются, а вот с другими (в частности - IE, Mozila, Android SDK) возникает проблема – браузер не открывает эти страницы.

Интернет говорит, что нужно просто разрешить SLL сертификаты. Есть пример на Java, сделала под шарп что-то вроде того:

DesiredCapabilities caps = DesiredCapabilities.Firefox();

caps.SetCapability(CapabilityType.AcceptSslCertificates, true);

FirefoxDriver driver = new FirefoxDriver(caps);

Но не работает.

У класса AndroidDriver вообще нет конструктора, который принимает параметр типа ICapabilities. Не знаю, может быть я что-то не правильно понимаю. Тесты пишу, как отмечалось выше, на C#.

Спасибо.


(Дмитрий Жарий) #2

 

Попробуйте протестировать https://www.google.com.ua/
Я пробовал на IE и FF, следующий код работает отлично. Попробуйте у себя:
 
            InternetExplorerDriver ie = new InternetExplorerDriver();
            ie.Navigate().GoToUrl("https://google.com");
            ie.FindElementByName("q").SendKeys("Hello" + Keys.Enter);
            
 
            FirefoxDriver ff = new FirefoxDriver();
            ff.Navigate().GoToUrl("https://google.com");
            ff.FindElementByName("q").SendKeys("Hello" + Keys.Enter);
 
 
Видео:
 
http://www.youtube.com/watch?v=dlpvOqd8d6s&feature=youtu.be

Обратите также внимание на настройки системы. Выключите UAC, отключите файрвол, снизьте настройки защиты до минимума

 

(Julie) #3

Большое Вам спасибо. Я просто новичок в тестировании, и не сразу поняла, что это проблемы в настройке базы.


(Константин) #4

Только, к сожалению, для андроида это не работает.

Может кто-нибудь знает решение этой проблемы? Очень уж мешает жить

Аналогично тесты пишу на C#

 


(Sergey Korol) #5

Попробуйте использовать RemoteWebDriver для задания capabilities.

Для Chrome они будут следующими:

            DesiredCapabilities capability = DesiredCapabilities.chrome();
            ChromeOptions options = new ChromeOptions();
            options.addArguments("--ignore-certificate-errors");
            capability.setCapability(ChromeOptions.CAPABILITY, options);
Для FF:
            FirefoxProfile profile = new FirefoxProfile();
            profile.setAssumeUntrustedCertificateIssuer(false);
            DesiredCapabilities capability = DesiredCapabilities.firefox();
            capability.setCapability(FirefoxDriver.PROFILE, profile);

Для IE сложнее. Помимо этого:

            DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
            capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
            capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
Точно не помню (давно этот момент смотрел), но вроде придется еще вручную добавлять сертификат через настройки. Это касается только тестовых серверов с включенным SSL. На живых, с валидным сертификатом проблем быть не должно.