Capybara / Selenium / Cucumber не работает JavaScript на документ готов - PullRequest
2 голосов
/ 31 марта 2011

Я пытаюсь написать несколько интеграционных тестов для моего Rails-приложения с использованием Cucumber и Capybara. Однако главная страница моего приложения не загружается с данными в нем - как только страница загружается, она запускает JavaScript, который извлекает данные для вставки на страницу:

jQuery(document).ready(function() {
  pullUpdates();
});

Функция pullUpdates находится в моем файле application.js.

Теперь дело в том, что если я просто запускаю приложение, это работает нормально. Когда я запускаю огурец, он открывает страницу в Firefox через селен, но данные никогда не загружаются. Сначала я попытался продлить тайм-аут, так что теперь для загрузки данных ожидают добрых тридцать секунд, но этого не происходит. На самом деле, я зашел и посмотрел журнал сервера, и мой javascript, кажется, даже не делает вызов ajax.

Затем я нашел драгоценный камень capybara-firebug, подумав, что, возможно, я мог бы просто посмотреть и посмотреть, что происходит в javascript на стороне клиента - но он не открывает firefox при открытии страницы, поэтому он не ловит Любая из этих ошибок JavaScript в первую очередь. Я открыл консоль ошибок в самом Firefox, хотя я думаю, что это ошибки, но я не могу их прочитать, потому что они сразу же съедаются попытками Селена проверить, обнаружился ли объект, который он ищет.

Я представляю, что это что-то простое, глупое и моя вина. Но я не вижу, как его диагностировать - он не попадает на сервер, проблема где-то на стороне клиента. Могу ли я заставить Capybara оставить страницу открытой после появления ошибок, чтобы я мог вернуться и прочитать журналы ошибок? Есть ли лучший способ устранить это?

...