Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 用代理使用恶鬼?_Ruby_Capybara_Phantomjs_Poltergeist - Fatal编程技术网

Ruby 用代理使用恶鬼?

Ruby 用代理使用恶鬼?,ruby,capybara,phantomjs,poltergeist,Ruby,Capybara,Phantomjs,Poltergeist,我使用PhantomJS和poltergeist来模拟浏览器,但是我不确定如何在代码中指定要使用的代理: require 'capybara' require 'capybara/dsl' require 'capybara/poltergeist' task :experiment => :environment do Capybara.run_server = false Capybara.current_driver = :poltergeist Capybara.ap

我使用PhantomJS和poltergeist来模拟浏览器,但是我不确定如何在代码中指定要使用的代理:

require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'

task :experiment => :environment do
  Capybara.run_server = false
  Capybara.current_driver = :poltergeist
  Capybara.app_host = "http://something.com"
  include Capybara::DSL

  # set_proxy('12.13.14.15', '4521')

  visit('posts')
  page.include?('foo')
end

另外,由于某种原因,我在使用poltergeist时得到了未定义的方法
page
,有人能建议吗?

您需要将
--proxy
选项传递给PhantomJS,请参阅

使用Poltergeist,您可以使用为PhantomJS指定命令行选项

综合起来:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, phantomjs_options: ["--proxy=12.13.14.15:4521"])
end

尝试在控制器操作中运行它,这样当它通过控制器级别进行控制时,它将更新新的代理ip。这样

def index options = { :js_errors => false, :debug => true, :phantomjs => "/Users/Umer/Desktop/phantomjs-2.0.0-macosx/bin/phantomjs", #:phantomjs_options => ["--proxy=#{proxy.ip}:#{proxy.port}", "--proxy-auth=#{proxy.username}:#{proxy.password}"] :phantomjs_options => ["--proxy=88.150.136.178:3128"] } Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, options) end Capybara.default_driver = :poltergeist Capybara.javascript_driver = :poltergeist Capybara.default_wait_time = 20 Capybara.ignore_hidden_elements = true Capybara.run_server = false Capybara.app_host = 'http://mxtoolbox.com' session = Capybara::Session.new(:poltergeist) session.visit('/WhatIsMyIP/') file = File.new("test3.html", "w+") file.write(session.body) file.close session.driver.quit end def索引 选项={ :js_errors=>false, :debug=>true, :phantomjs=>“/Users/Umer/Desktop/phantomjs-2.0.0-macosx/bin/phantomjs”, #:phantomjs_options=>[“--proxy={proxy.ip}:{proxy.port}”,“--proxy auth={proxy.username}:{proxy.password}] :phantomjs_options=>[“--proxy=88.150.136.178:3128”] } Capybara.register_驱动程序:poltergeist do|app| 水豚::Poltergeist::Driver.new(应用程序,选项) 结束 Capybara.default_driver=:poltergeist Capybara.javascript_driver=:poltergeist Capybara.default\u wait\u time=20 Capybara.ignore\u hidden\u elements=true Capybara.run_server=false Capybara.app\u主机http://mxtoolbox.com' session=Capybara::session.new(:poltergeist) 会话。访问(“/WhatIsMyIP/”) file=file.new(“test3.html”,“w+”) file.write(session.body) file.close session.driver.quit 结束