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

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

Теги: #<Tag:0x00007f74871d4428> #<Tag:0x00007f74871d4360> #<Tag:0x00007f74871d4270>

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

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

1 Симпатия

Спасибо!

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

2 Симпатий

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

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

@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 откажется работать с урлом содержащим логин/пароль

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

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

Здравствуйте. Как можно понять почему не происходит авторизация типа Digest?

Configuration.proxyEnabled = true;
Configuration.fileDownload = FileDownloadMode.PROXY;
Configuration.proxyHost = ClientUtil.getConnectableAddress().getHostAddress();

open(“path”, AuthenticationType.DIGEST, “login”, “password”);

Форма авторизации появляется , но данные в нее не вносятся и она не исчезает

Код вроде правильный. Фиг знает, надо копать.

На всякий случай, вот рабочий пример: https://github.com/selenide/selenide/blob/master/statics/src/test/java/integration/BasicAuthTest.java

В указанном примере речь идет о Basic авторизации. С ней проблем нет, но когда я меняю на сайте и в тесте тип авторизации на Digest авторизация не происходит, в консоли запросов нет.

Если авторизоваться на сайте руками, то в консоли присутствует фраза: " Authorization: Digest", так что теоретически на сайте авторизация работает корректно.