ruby - 将 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.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,参见 the API docs

有了 Poltergeist,您可以使用 the :phantomjs_options configuration option为 PhantomJS 指定命令行选项。

综合:

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

关于ruby - 将 poltergeist 与代理一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16278597/

相关文章:

ruby - 在 ruby​​ 中测试拖放

javascript - 使用Capybara/Poltergeist使用Fullcalendar测试拖放

javascript - 无法从 phantomjs 打开 behance.net

ruby - 通过 ruby​​ 中的值属性选择哈希值

ruby - 如何使用 capybara 单击项目列表中的一项

ruby-on-rails - ruby 包安装需要 : no such files to load error

vue.js - Vue SPA - PhantomJS 成功运行,但 Fetch As Google 显示空白

dom - PhantomJS 在评估之前更改网页内容

ruby - Rake:如何从任务内部输出任务列表?

ruby - Rails 3 没有要加载的文件——Nokogiri (LoadError)