0

這樣做的正確方法是什麼?Selenium:如何通過RailsPanel Extension加載啓動Chrome?

Capybara.register_driver :chrome do |app| 
    client = Selenium::WebDriver::Remote::Http::Default.new 

    extension_path = '/Users/jill/Documents/rails_panel-master/rails_panel' 

    caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ['--load-extension=' + extension_path]}) 

    Capybara::Selenium::Driver.new(app, :browser => :chrome, http_client: client, desired_capabilities: caps) 
end 

此外,--load擴展與交換機的工作,但對Chromedriver它的小文件。

Capybara::Selenium::Driver.new(app, :browser => :chrome, http_client: client, :switches => ['--load-extension=' + extension_path]) 
+0

在這個問題(**的技術 - 負載擴展**適用於硒的webdriver(2.53.4),不硒的webdriver(3.05)升級到3.05使用的解決方案。 – Jill

回答

1

我從來沒有使用擴展功能,以便沒有保證,但一看硒的webdriver源 - https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/chrome/profile.rb#L38 - 顯示在Chrome ::檔案對象#add_extension和#add_encoded_extensions方法,所以你可以嘗試像

profile = Selenium::WebDriver::Chrome::Profile.new() 
profile.add_extension(extension_path) 
Capybara::Selenium::Driver.new(app, browser: :chrome, http_client: client, profile: profile) 
+0

對不起,它沒有工作 - 硒的最近變化顯然打破了很多配置選項。 –

+0

Thi s適用於selenium-webdriver(3.0.5)!我需要從selenium-webdriver(2.53.4)中捆綁更新。 – Jill

+0

另外這需要一個我用鉻打包的.crx文件。請參閱[Chrome擴展包裝](https://developer.chrome.com/extensions/packaging)。因此擴展路徑變成了extension_path ='/Users/jill/Documents/rails_panel-master/rails_panel.crx' – Jill

相關問題