У меня возникла проблема с инъекционным скриптом в Capybara. Вот фрагмент кода.Capybara - введите тег скрипта и дождитесь завершения задачи async
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, :phantomjs_options => ['--debug=no', '--ignore-ssl-errors=yes'], :js_errors => false)
end
Capybara.configure do |c|
c.javascript_driver = :poltergeist
c.default_driver = :poltergeist
c.app_host = "http://www.google.com"
c.default_wait_time = 120
end
Capybara.current_session.driver.headers = {
'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
}
visit('/')
Capybara.current_session.driver.execute_script("alert('Working!');")
sleep(1)
system('rm /tmp/screenshot.png')
Capybara.current_session.driver.save_screenshot('/tmp/screenshot.png')
Здесь я впрыскиваю скрипт, который вызывает некоторые вызовы ajax и изменяет dom. Однако, когда я делаю снимок, я не вижу никаких изменений на странице, как будто сценарий никогда не был там. Я также попытался добавить простой оператор предупреждения, но не вижу предупреждения в снимке. Что мне здесь не хватает?
Я заменил сценарии в фрагмент с фиктивными URL-адресами для конфиденциальности, но я использую рабочие URL-адреса в своем коде. – 3coins
Что еще вы заменили? Любой из них может стать потенциальной причиной проблемы. Пожалуйста, соберите [Минимальный, Полный и Подтверждающий пример] (http://stackoverflow.com/help/mcve), чтобы показать проблему, т.е. мы можем управлять собой. Покажите код сценария, используйте 'alert()', если хотите, тогда у нас будет определенная надежда на возможность отладки проблемы. – smathy
Упрощен пример с помощью оператора предупреждения и рабочих URL. Проблема в том, что я не вижу всплывающее окно предупреждения в снимке. – 3coins