Здравствуйте! Проблема: при написании автотеста на Java с помощью Selenium браузер Chrome требует SSO(Single sign on) авторизацию, то есть появляется окошко с формами для логина и пароля. Как можно при помощи Selenium осуществить эту аутентификацию? Пробовал писать скрипт на autoIT, но безуспешно. Очень мало информации в интернете по этой теме. Буду благодарен за любую информацию.
покажите скриншот окошка
Вангую что это basic auth )
Решаем через запись логина-пароля в url
https://login:password@example.com
sso через basic auth ?)
Использовать webdriver для авторизации это плохая практика.
Попробуйте использовать отправку запросов к сервису авторизации и используйте полученную сессию в дальнейшем. Обратитесь к разработчикам, они смогут помочь с этим.
Бывало что путали SSO с basic auth )
Спасибо за помощь, однако данным способом я пользовался при basic авторизации, и он работал, конечно. Сейчас же у меня точно SSO авторизация и такая штука не прокатывает.
Скриншот по некоторым причинам скинуть не могу , название окошка: “Необходима авторизация”. В ФФ обойти это легче, думаю, но нужно именно в хроме.
Просто предположил что всё проще, по описанию сложилось впечатление что это браузер выводит окошко с логином и паролем.
Ну тогда вы хотя бы название SSO-решения приведите. Их вон сколько
Вдруг у кого-то есть опыт.
AutoIT может не подойти, из-за того что такие вещи как правило защищают от подобного.
Если вам не смогут помочь те кто отвечает за SSO, возможно придётся смотреть в сторону аппаратной эмуляции HID-устройств.
Спасибо за помощь, буду ковырять
Не можете снять скриншот auth поп апа ?)
Это Basic auth
Скорее всего при переходе на основной адрес происходит переадресация на другой домен.
И логин/пароль из url уже не помогают.
Делаем так - сначала заходим на адрес куда перенаправляют, а затем на основной
driver.get("https://login:password@адрес_переадресации.рф");
driver.get("https://login:password@основной_адрес.рф")
не совсем понятно - ето native pop up или html ? похоже что native - для етого How to Handle Authentication alert of browser in selenium webdriver? - Stack Overflow
Неожиданно, мне утверждали обратное, спасибо!
Обнаружилась другая проблема: на компе, где этот тест должен работать, запись “https://login:password@domain.com” не работает (в смысле вообще не воспринимается подобная запись), стоит хром 41 версии, использую вебдрайвер 2.53.1
Сделал скрипт через autoIT, на моем ноуте этот скрипт победил аутентификацию, на компе же со старой версией хрома и вебдрайвера не работает.
Скрипт просто вставляет логин и пароль в нужное место.
это native
Возможно у вас в логине/пароле есть символы которые нужно закодировать (URLEncode)
т.е., если пароль pa$$word то в URL мы ставим pa%24%24word
Есть множество сайтов где это можно сделать онлайн, например - URL Encode and Decode Online Tool | SAMLTool.com