Я создал простой Gem для создания скриншотов для Capybara Webkit при сбое сценария, а также сохраняет HTML-файл текущей страницы независимо от того, какой драйвер Capybara вы используете.Тем не менее, я столкнулся с проблемой, которую не могу решить, когда всякий раз, когда вызывается код в Gem, page.body
пусто.Тем не менее, page.body
не является пустым, когда я использую тот же самый код в приложении Rails.
Код gem находится на Github в https://github.com/mattheworiordan/capybara-screenshot
Если вы посмотрите, вы увидитевижу, что у меня есть lib / capybara-screenshot / world.rb файл, который обращается к page.body и сохраняет содержимое.Проблема в том, что когда Gem обращается к page.body, page.body пусто и просто содержит: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
Я включаю world.rb в корневой файл lib gem , поэтому я не могу видетьчто я делаю не так.
Странно, если я помещаю блок after в мой пример файла env.js приложения Rails , обращающийся к page.body, имеет правильный HTML, поэтому кажется, что вызов After{мой код} в Gem выполняется после того, как страница была выпущена.
Код gem в https://github.com/mattheworiordan/capybara-screenshot,, а gem установлен в https://rubygems.org/gems/capybara-screenshot. Пример приложения Railsкоторый вы можете использовать, чтобы быстро воссоздать эту проблему, просто запустив огурец в https://github.com/mattheworiordan/capybara-screenshot-test
Я чувствую, что ответ на этот вопрос прост, но по какой-то причине я не вижу его.Я ценю любую помощь, которую вы можете предложить.