0

Каков правильный способ сделать это?Selenium: Как загрузить Chrome с расширением RailsPanel?

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 - показывает #add_extension и #add_encoded_extensions методу на Chrome :: объекте профиля, так что вы можете попробовать что-то вроде

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

Жаль, что это не сработало - последние изменения в Selenium, по-видимому, прервали множество вариантов конфигурации. –

+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

Смежные вопросы