Использование Turbolinks с Selenium IDE

Когда я запускаю свой тест селена без гема turbolinks, установленного в моем приложении Ruby on Rails, тесты проходят. Когда включаю турболинки, тесты проваливаются. Например, если тест начинается

Открыть /
clickAndWait link=Войти
type id=session_email [email protected]

Затем я получу сообщение об ошибке
"[error]Element id=session_email не найден.

Когда я смотрю на источник страницы, идентификатор session_email все еще там с установленными турбоссылками. Я нашел эту страницу, http://www.digitalkingdom.org/rlp/tiki-index.php?page=Selenium+And+Javascript, что указывает на то, что может возникнуть проблема с определением полной загрузки страницы.

Можно ли это исправить, не меняя сотни строк в моих тестовых наборах? Если нет, существует ли надежный метод селена, который может проверить, что страница с турбоссылкой полностью загружена?


person Obromios    schedule 18.03.2013    source источник


Ответы (1)


После некоторой помощи с проектом github turbolinks-compatibility я может дать частичный ответ на этот вопрос.

Если используется гем turbolinks, вам нужно будет изменить тестовые примеры селена, чтобы убедиться, что страница действительно загружена. Например, если в вашем тесте есть следующий код

Open /
clickAndWait link=Sign in
type id=session_email [email protected]

то его нужно изменить на

Open /
click link=Sign in
waitForElementPresent id=session_email
type id=session_email [email protected]

Существует ряд модификаторов «waitFor», которые вы можете использовать, в зависимости от того, какую функцию на странице вы хотите протестировать следующей.

Однако, если тест включает всплывающее окно javascript, вам не следует добавлять команду waitFor. Так, например, если у вас есть тест, например

clickAndWait link=Delete
assertConfirmation   Are you Sure?

вы не должны изменять код. Действительно, добавление теста waitFor приводит к зависанию выполнения в случае всплывающих окон javascript.

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

person Obromios    schedule 28.03.2013