我们只是从capybara-webkit迁移到Poltergeist。以前我们使用capybara-webkit和puffing billy,你可以在这里看到:
def use_proxy_with_vcr cassettes_name = nil, cassettes_options = {}
page.driver.browser.set_proxy(:host => Billy.proxy.host, :port => Billy.proxy.port)
page.driver.browser.ignore_ssl_errors
Billy.proxy.strategy.use_cassette cassettes_name, cassettes_options
yield
Billy.proxy.strategy.reset
page.driver.browser.clear_proxy
end
这发生在运行时和我想用Poltergeist做同样的事情。我意识到可以通过使用phantomjs_options(https://github.com/jonleighton/poltergeist#customization)通过capybara驱动程序设置传递CLI选项来设置代理并忽略ssl错误。
是否可以在运行时启用/禁用代理和ssl错误?如果是的话怎么样?
答案 0 :(得分:4)
在运行期间通过poltergeist无法禁用/启用phantomjs选项(虽然IIRC一般可以这样做,因此可以将该功能添加到poltergeist中)。
我认为实现这一目标的最简单方法是注册一个新的Capybara驱动程序。 E.g。
Capybara.register_driver :proxied_poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, phantomjs_options: [...])
end
然后,您可以通过设置Capybara.current_driver = :proxied_poltergeist
来使用适用的驱动程序。这将使用您指定的CLI选项启动单独的phantomjs实例。