2013-02-26 79 views
1

我們只是從capybara-webkit遷移到了Poltergeist。以前我們沒有使用水豚,用的WebKit作爲puffing billy你可以在這裏看到:測試運行時期間的Poltergeist切換代理

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 

這發生在運行時和我希望做同樣的事情鬼驅人。我意識到可以通過使用phantomjs_options(https://github.com/jonleighton/poltergeist#customization)通過capybara驅動程序設置傳遞CLI選項來設置代理並忽略ssl錯誤。

是否可以在運行時啓用/禁用代理和ssl錯誤?如果是的話如何?

回答

4

無法在運行時通過poltergeist禁用/啓用phantomjs選項(儘管IIRC一般可能,因此該功能可以添加到poltergeist中)。

我認爲最簡單的方法就是註冊一個新的水豚驅動程序。例如。

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

然後,您可以使用驅動程序在適用情況下通過設置Capybara.current_driver = :proxied_poltergeist。這將使用您指定的CLI選項啓動一個單獨的phantomjs實例。

+0

有沒有計劃添加這個?整個運行過程中無法做事情嗎? – pguardiario 2015-07-30 23:14:12

相關問題