大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – Capybara,Poltergeist和Phantomjs并在身体上给出空洞的回应,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个模块如下,并将其包含在使用连接需求的文件中.
require 'capybara/poltergeist' module Parser module JSParser include Capybara # Create a new PhantomJS session in Capybara def new_session # Register PhantomJS (aka poltergeist) as the driver to use Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app,:debug => truE) end # Use XPath as the default SELEctor for the find method Capybara.default_SELEctor = :xpath Capybara.javascript_driver = :poltergeist Capybara.current_driver = :poltergeist # Start up a new thread @session = Capybara::Session.new(:poltergeist) # Report using a particular user agent @session.driver.headers = { 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X)' } # Return the driver's session @session end # Returns the current session's page def html @session.html end end end
然后,按如下方式加载页面:
class Loader include Parser::JSParser def load_page new_session visit "http://www.smashingmagazine.com" #let phantomjs take its time sleep 5 puts "html=#{html}" end end
然后,最后,调用load_page
Loader.new.load_page
这是来自poltergeist的调试响应
poltergeist [1364758785355] state default -> loading {"response"=>truE} {"name"=>"visit","args"=>["http://www.smashingmagazine.com"]} poltergeist [1364758794574] state loading -> default {"response"=>{"status"=>"success"}} {"name"=>"body","args"=>[]} {"response"=>"<html><head></head><body></body></html>"}
如您所见,响应只是一个空白文档,只有html,head和body标签,但在body标签中没有任何内容.
我做错了什么?观察网络流量,我得到主机的完整回复(在这种情况下为smashingmagazine.com).在回复之后,我不知道发生了什么.有时phantomjs也会崩溃,而在其他场合,它会通过空体.这是phantomjs崩溃时在STDERR上打印的最后一行
PhantomJS client died while processing {"name":"visit","args":["http://www.smashingmagazine.com"]}
以上是大佬教程为你收集整理的ruby-on-rails – Capybara,Poltergeist和Phantomjs并在身体上给出空洞的回应全部内容,希望文章能够帮你解决ruby-on-rails – Capybara,Poltergeist和Phantomjs并在身体上给出空洞的回应所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。