1

我们只是从 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 )通过水豚驱动程序设置传递 CLI 选项来设置代理并忽略 ssl 错误。

是否可以在运行时启用/禁用代理和 ssl 错误?如果是怎么办?

4

1 回答 1

4

在运行时通过 poltergeist 禁用/启用 phantomjs 选项是不可能的(尽管 IIRC 通常是可能的,因此可以将该功能添加到 poltergeist)。

我认为实现这一目标的最简单方法是注册一个新的 Capybara 驱动程序。例如

Capybara.register_driver :proxied_poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, phantomjs_options: [...])
end

然后,您可以通过设置在适用的情况下使用驱动程序Capybara.current_driver = :proxied_poltergeist。这将使用您指定的 CLI 选项启动一个单独的 phantomjs 实例。

于 2013-02-26T23:38:39.430 回答