Андрей, спасибо!
Подскажите, а #selenide умеет перехватывать стандартные алерты авторизации?
Вы имеете в виду BasicAuth?
Сейчас не умеет. Потому, что Selenium не умеет.
В принципе мы можем это сделать, но обычно рекомендуют способы проще - например, передавать username+password прямо в url.
Спасибо!
Селениум сейчас умеет работать с окном авторизации в IE. А вот хрому и лисе логин/пароль надо скармливать через урл.
У меня в проектах есть некостыльная авторизация в ие, хроме и лисе. Могу сделать PR в Селенид
+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”);
Форма авторизации появляется , но данные в нее не вносятся и она не исчезает
Код вроде правильный. Фиг знает, надо копать.
На всякий случай, вот рабочий пример: selenide/BasicAuthTest.java at main · selenide/selenide · GitHub
В указанном примере речь идет о Basic авторизации. С ней проблем нет, но когда я меняю на сайте и в тесте тип авторизации на Digest авторизация не происходит, в консоли запросов нет.
Если авторизоваться на сайте руками, то в консоли присутствует фраза: " Authorization: Digest", так что теоретически на сайте авторизация работает корректно.