Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Selenide умеет перехватывать стандартные алерты авторизации?

java
selenide
webdriver
Теги: #<Tag:0x00007fedc45509b0> #<Tag:0x00007fedc4550848> #<Tag:0x00007fedc45506e0>

(Алексей Бобруцков) #1

Андрей, спасибо!
Подскажите, а #selenide умеет перехватывать стандартные алерты авторизации?


Selenide: Лаконичные UI тесты на Java
(asolntsev) #2

Вы имеете в виду BasicAuth?
Сейчас не умеет. Потому, что Selenium не умеет.
В принципе мы можем это сделать, но обычно рекомендуют способы проще - например, передавать username+password прямо в url.


(Алексей Бобруцков) #3

Спасибо!


(Dmitrii Demin) #4

Селениум сейчас умеет работать с окном авторизации в IE. А вот хрому и лисе логин/пароль надо скармливать через урл.
У меня в проектах есть некостыльная авторизация в ие, хроме и лисе. Могу сделать PR в Селенид


(Алексей Бобруцков) #5

+1 через IE тоже получилось сделать не костыль.


(asolntsev) #6

Было бы круто запилить.
А что там за способ?


(Dmitrii Demin) #7

@asolntsev
IE:

getWebDriver().switchTo()
.alert()
.authenticateUsing(new UserAndPassword(domain + "\\" + login, password));

Chrome:

  • просто в урле передаем домен, логин, пароль. Думаю многие знают как =)

FF:

  • аналогично хрому, но перед созданием драйвера нужно настроить профиль
        myProfile.setPreference("network.automatic-ntlm-auth.trusted-uris", "http://,https://");
        myProfile.setPreference("network.automatic-ntlm-auth.allow-non-fqdn", true);
        myProfile.setPreference("network.negotiate-auth.delegation-uris", "http://,https://");
        myProfile.setPreference("network.negotiate-auth.trusted-uris", "http://,https://");
        myProfile.setPreference("network.http.phishy-userpass-length", 255);
        myProfile.setPreference("security.csp.enable", false);

иначе FF откажется работать с урлом содержащим логин/пароль


(Dmitrii Demin) #8

Пардон, с этими preference FF…:
network.automatic-ntlm-auth.trusted-uris
network.negotiate-auth.delegation-uris
network.negotiate-auth.trusted-uris

… можно поступить проще - установить значение “http://,https://”