WatiN не может пройти аутентификацию в IE8

#c# #.net #unit-testing #authentication #watin

#c# #.net #модульное тестирование #аутентификация #watin

Вопрос:

В настоящее время я использую WatiN 2 для запуска некоторых тестов в нашем веб-приложении. Один из них требует аутентификации, поэтому WatiN необходимо ввести имя пользователя и пароль для действительной учетной записи Windows на сервере.

Я протестировал эту учетную запись вручную, нажав опцию «Войти как другой пользователь» в IE8, а затем заполнив учетные данные. Я вижу нужную страницу, значит, система работает. Однако, когда я запускаю тест с помощью watin, я вижу, что watin вводит имя пользователя и пароль, но затем я получаю сообщение об ошибке 401 Unauthorized.

Забавно, что когда мой коллега запускает тест со своей локальной машины разработки (не с большой системой разработки, над которой мы все работаем), тест работает без единой проблемы. Если мы запустим его из системы разработки, произойдет сбой на странице 401.

Проблема впервые возникла, когда мы установили IE8, поскольку наш предыдущий watin не мог с ним работать. Итак, мы обновили watin, и теперь мы сталкиваемся с этой проблемой.

Ответ №1:

Проблема заключалась не в запуске тестов от имени администратора. Проблема в том, что WatiN 2 не может правильно распознать диалоговое окно входа в систему из IE8 в Windows 7.

Чтобы обойти эту проблему, я написал свой собственный класс LogonDialogHandler для IE8, который полагается на Windows Authentication API 3.0 от WPF. Этот класс в настоящее время работает и позволяет моим тестам без проблем входить в наши приложения.