Не удается войти на сайт под Selenium WebDriver - PullRequest
0 голосов
/ 23 января 2019

У меня странная проблема, когда я не могу войти на тестируемый сайт с помощью Selenium WebDriver, но у меня не возникает проблем при входе в систему при запуске тестируемого проекта в Visual Studio или в нашей среде QA.

Я разбил тест на самый упрощенный пример, где он позволяет мне вручную вводить имя пользователя, пароль и нажимать кнопку входа в систему, пока он ожидает подтверждения того, что он перешел на следующий экран (ожидает элемент на этой странице).

Все, что происходит при работе в Selenium, - это обновление страницы.

Тест:

driver.Navigate().GoToUrl(this._baseURL + "Account/Index");
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(drv => drv.FindElement(By.Id("element-on-next-page")));

Кнопка входа в систему вызывает метод jQuery $.ajax для отправки данных в службу и корректно входит в метод success(). Служба возвращает URL перенаправления.

Это, в свою очередь, попытка перенаправления, которая работает при работе с сайтом вручную, но просто перезагружает страницу входа, когда проходит тест Selenium:

window.location.replace(location.origin + result.RedirectTo);

Я подтвердил, что result.RedirectTo действителен при выполнении теста (это страница, на которую он должен перенаправляться для успешного входа в систему).

Протестировано с Chrome 71.0.3578.98, Firefox 64.0.2 и IE 11.472.17134.0. Он хорошо работает вручную во всех трех.

Я не уверен, почему это поведение действует иначе при автоматизации.

ОБНОВЛЕНИЕ : Страница, на которую он пытается перенаправить, имеет атрибут [Authorize()] на контроллере. Удаление этого атрибута позволяет пройти тест. Атрибут вызывает только тесты Selenium, а не ручное тестирование.

1 Ответ

0 голосов
/ 24 января 2019

нужно ли пытаться выполнить шаги входа в систему вручную в браузере Chrome, запущенном Selenium?

Я не уверен, но иногда Google перенаправляет на страницу авторизации или проверяет вашу страницу идентификации только для того, чтобы убедиться, что вы не используете сценарии автоматизации для создания нескольких электронных писем, регистрации или удаления любых данных веб-сайта.

Просто попробуйтезапустить тот же сценарий вручную в браузере, запущенном селеном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...