Я видел, как этот вопрос задавали несколько раз, и предлагается множество решений, но ни один из них не работает для RemoteWebDriver (т. Е. Используя селеновую сетку). Обычно они сосредоточены вокруг, используя локальные классы ChromeDriver/FirefoxDriver/IEDriver.Selenium RemoteWebDriver и Windows Authentication Dialogs
Я использую привязки .NET, кстати :).
Что я хочу сделать, достаточно просто (с точки зрения требований). У меня есть настройка Selenium Server, и в настоящее время я использую RemoteWebDriver для выполнения автоматических тестов пользовательского интерфейса на разных сайтах. Эта настройка работает нормально.
Однако на некоторых сайтах используется аутентификация NTLM/Windows, и нам необходимо начать автоматические тесты для них. Однако, насколько я могу судить, для этого нет решения.
Я видел следующие «решения», но - если кто-то может исправить меня - они либо не работают последовательно, или не будет работать, используя RemoteWebDriver:
- Использование функции IAlert (как here) , Однако это не реализовано в привязках .NET и не работает для всех браузеров, насколько я могу судить.
- Использование API робота для взаимодействия со всплывающим окном (например, here). Но это для работы на вашей локальной машине и не поддерживается RemoteWebDriver.
- Использование AutoIt, чтобы сделать аналогичную вещь с API-интерфейсом Robot. Однако это не будет работать с помощью RemoteWebDriver.
- Передача учетных данных в URL-адресе (например: http://username:[email protected]). Однако это не работает для проверки подлинности Windows - просто обычная HTTP-аутентификация.
Я не могу реально увидеть какие-либо другие решения, если кто-либо другой не может помочь?
Обходной путь в настоящее время заключается в регистрации на сервере Selenium, переходе на сайты в каждом браузере и сохранении учетных данных. Но это не идеально, и добавляет уровень ручного взаимодействия для каждого теста.
Любая помощь будет оценена :).
Ваше решение прокси-сервера является хорошим. Я просто укажу, что методы аутентификации на интерфейсе IAlert, безусловно, были реализованы в привязках .NET. Этот метод называется 'SetAuthenticationCredentials'. Тем не менее, вы абсолютно правы, что он не реализован во всех браузерах (только IE, съел время написания). – JimEvans
Спасибо @JimEvans - я стою исправлено о том, что IAlert реализуется в привязках .NET :). Есть так много старых сообщений в блогах, когда это было не то, что это может быть довольно запутанным! Спасибо за разъяснение. – stevehayter