Selenium:如何在加载了RailsPanel Extension的情况下启动Chrome? [英] Selenium: How do I start Chrome with RailsPanel Extension loaded?

查看:90
本文介绍了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-extension 也可以使用,但是 Chromedriver

Also, --load-extension with switches worked, but there is little documentation on Chromedriver for it.

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


推荐答案

我从没使用扩展功能,所以没有保证,但是看看selenium-webdriver源- https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/chrome/profile.rb#L38 -在Chrome上显示#add_extension和#add_encoded_extensions方法: :Profile对象,因此您可以尝试类似

I've never used the extensions feature so no guarantees, but a look at the selenium-webdriver source - https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/chrome/profile.rb#L38 - shows #add_extension and #add_encoded_extensions methods on the Chrome::Profile object, so you can try something like

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

这篇关于Selenium:如何在加载了RailsPanel Extension的情况下启动Chrome?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆