打开Chrome浏览器时,Capybara无法加载或添加扩展程序

问题描述 投票:1回答:1

我正在尝试使用扩展程序/附加“mod标头”自动打开Chrome浏览器,以便我可以使用http标头,用户代理等发送网址。

问题是我的脚本(下面给出的代码片段)打开Chrome浏览器没有扩展/附加“mod标头”,不知道我做错了什么?请帮忙

env.rb:


require 'rspec'
require 'cucumber'
require 'capybara'
require 'selenium-webdriver'
require 'capybara/cucumber'
require 'base64'

Capybara.app_host = "http://google.com"

settings = YAML.load_file(File.expand_path(File.dirname(__FILE__))+ "/../../config/settings.yml")
puts settings.inspect
puts settings["browser"]

case settings["browser"]
  when "CHROME"
    chrome_extensions = []
    my_capabilities = Hash.new
    # chrome_extension_path = '/Users/Duncan/Desktop/Browser_Testing/extension_1_2_4.crx'
    # puts '#{chrome_extension_path}'
    begin
        File.open('/Users/Duncan/Desktop/Browser_Testing/extension_1_2_4.crx', "rb") do |file|
        chrome_extensions << Base64.encode64(file.read.chomp)
        puts 'over it is...'
        end
    rescue Exception => e
      raise "ERROR: Couldn't File.read or Base64.encode64 a Chrome extension: #{e.message}"
    end
    # Append the extensions to your capabilities hash
      my_capabilities.merge!({'chrome.extensions' => chrome_extensions})
      caps = Selenium::WebDriver::Remote::Capabilities.chrome(my_capabilities)
      Capybara.register_driver :selenium_chrome do |app|
     #Capybara::Selenium::Driver.new(app, :browser => :chrome, :switches => ["--load-extension=/Users/chinmayajb/Desktop/MPM_Testing/extension_1_2_4.crx"])
      Capybara::Selenium::Driver.new(app, :browser => :chrome, :desired_capabilities => caps)
    end
    Capybara.default_driver = :selenium_chrome
end
ruby google-chrome google-chrome-extension rubygems capybara
1个回答
0
投票

这应该适用于在Chrome浏览器上使用Ruby Capybara加载扩展程序:

caps = Selenium::WebDriver::Remote::Capabilities.chrome({'chromeOptions' 
    => 
    {'extensions' => Base64.strict_encode64(

    File.open('C:\Workspace\RemoteSystemsTempFiles\extension.crx','rb').read
    )]}})
    Capybara.register_driver :selenium_chrome do |app|
        Capybara::Selenium::Driver.new(app, :browser => :chrome, 
        :desired_capabilities => caps)
    end
    Capybara.default_driver = :selenium_chrome
© www.soinside.com 2019 - 2024. All rights reserved.