2015-11-25 1 views
1

Я определяю некоторые характеристики с Geb (0.12.2) и Spock для проверки моего интерфейса. Система входа в систему моего приложения зависит от единого входа с внутренним IDP. Как только я перейду в частную часть моего приложения, если ранее не был зарегистрирован в нашем IDP, он будет перенаправлен на домашнюю страницу IDP, а затем снова подключится и перенаправит вас на начальный запрос личного URL-адреса.Невозможно удалить куки на Geb & Spock test

Мне нужно выйти из системы в любое время. Для этого я могу:

  • Выйти из системы.
  • Удалить cookie, установленный idp.

Я хочу инициализировать каждый класс GebSpec без каких-либо предыдущих файлов cookie или состояния из предыдущего исполнения GebSpec и не хочу зависеть от системы выхода. Для этого я могу:

  1. Удалить все cookies.
  2. Закройте браузер (не хотите этого делать).

Но у меня проблемы с двумя апробациями.

1) Удаление печенье Как сказано в http://www.gebish.org/manual/current/#implicit-driver-management я попытался вызвать clearCookies() метод в setup(), setupSpec(), cleanup() и cleanupSpec() методы не оказывают влияния на печенье (отладки и проверки куки в браузере ничего не удалено после того, как эти методы называется). Я запускаю тесты от IntelliJ, а также из командной строки, вызывающей gradlew.

Кроме того, как сказано в http://www.gebish.org/manual/current/#cookie-management-in-tests:

Класс geb.spock.GebSpec очистит куки в методе очистки(), если спецификация не @Stepwise, в этом случае они очищаются в cleanupSpec () (что означает, что все методы функций в пошаговой спецификации имеют одно и то же состояние браузера).

Это не происходит в моих классах GebSpec, равно как и не по умолчанию, и не форсирует его.

Я делаю что-либо, вмешиваясь в это поведение по умолчанию (не используя @Stepwise), или я ничего не пропускаю? Кто-то имеет такой же эффект?

PS: Я использовал BaseGepSpec для определения общих методов setup() для всех моих классов GebSpec и старался не распространяться с тем же результатом. Я также использовал GebReportingSpec и пробовал без такого эффекта ...)

Спасибо!

ответ

1

Browser.clearCookies() только удаляет файлы cookie для текущего домена, это ограничение работы браузеров (вы можете контролировать файлы cookie текущего домена в javascript также) и что WebDriver does when you call deleteAllCookies(). Справедливости ради стоит ticket for making the docs clearer about what Browser.clearCookies() actually does.

Чтобы очистить файлы cookie для вашего домена IDP, вам необходимо сначала перейти на любой URL-адрес этого домена и после этого вызова clearCookies().

 Смежные вопросы

  • Нет связанных вопросов^_^