class Ferrum::Browser::Command
Constants
- NOT_FOUND
Attributes
defaults[R]
options[R]
path[R]
Public Class Methods
build(options, user_data_dir)
click to toggle source
Currently only these browsers support CDP: github.com/cyrus-and/chrome-remote-interface#implementations
# File lib/ferrum/browser/command.rb, line 12 def self.build(options, user_data_dir) defaults = case options[:browser_name] when :firefox Options::Firefox.options when :chrome, :opera, :edge, nil Options::Chrome.options else raise NotImplementedError, "not supported browser" end new(defaults, options, user_data_dir) end
new(defaults, options, user_data_dir)
click to toggle source
# File lib/ferrum/browser/command.rb, line 27 def initialize(defaults, options, user_data_dir) @flags = {} @defaults = defaults @options, @user_data_dir = options, user_data_dir @path = options[:browser_path] || ENV["BROWSER_PATH"] || defaults.detect_path raise Cliver::Dependency::NotFound.new(NOT_FOUND) unless @path merge_options end
Public Instance Methods
to_a()
click to toggle source
# File lib/ferrum/browser/command.rb, line 40 def to_a [path] + @flags.map { |k, v| v.nil? ? "--#{k}" : "--#{k}=#{v}" } end
xvfb?()
click to toggle source
# File lib/ferrum/browser/command.rb, line 36 def xvfb? !!options[:xvfb] end
Private Instance Methods
merge_options()
click to toggle source
# File lib/ferrum/browser/command.rb, line 46 def merge_options @flags = defaults.merge_required(@flags, options, @user_data_dir) unless options[:ignore_default_browser_options] @flags = defaults.merge_default(@flags, options) end @flags.merge!(options.fetch(:browser_options, {})) end