我正在使用 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/