Class: Selenium::WebDriver::Options
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Options
- Defined in:
- lib/selenium/webdriver/common/options.rb
Constant Summary collapse
- W3C_OPTIONS =
%i[browser_name browser_version platform_name accept_insecure_certs page_load_strategy proxy set_window_rect timeouts unhandled_prompt_behavior strict_file_interactability web_socket_url].freeze
- GRID_OPTIONS =
%i[enable_downloads].freeze
Class Attribute Summary collapse
-
.driver_path ⇒ Object
readonly
Returns the value of attribute driver_path.
Instance Attribute Summary collapse
-
#options ⇒ Object
Returns the value of attribute options.
Class Method Summary collapse
- .chrome ⇒ Object
- .edge ⇒ Object (also: microsoftedge)
- .firefox ⇒ Object
- .ie ⇒ Object (also: internet_explorer)
- .safari ⇒ Object
- .set_capabilities ⇒ Object
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
-
#add_option(name, value = nil) ⇒ Object
Add a new option not yet handled by bindings.
- #as_json ⇒ Object private
- #bidi? ⇒ Boolean
-
#enable_bidi! ⇒ Boolean
Enables WebDriver BiDi by requesting the W3C webSocketUrl capability.
-
#initialize(**opts) ⇒ Options
constructor
A new instance of Options.
Constructor Details
#initialize(**opts) ⇒ Options
Returns a new instance of Options.
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/selenium/webdriver/common/options.rb', line 71 def initialize(**opts) self.class.set_capabilities opts[:web_socket_url] = opts.delete(:bidi) if opts.key?(:bidi) @options = opts @options[:browser_name] = self.class::BROWSER enable_bidi! if @options[:web_socket_url] end |
Class Attribute Details
.driver_path ⇒ Object (readonly)
Returns the value of attribute driver_path.
30 31 32 |
# File 'lib/selenium/webdriver/common/options.rb', line 30 def driver_path @driver_path end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
69 70 71 |
# File 'lib/selenium/webdriver/common/options.rb', line 69 def @options end |
Class Method Details
.chrome ⇒ Object
32 33 34 |
# File 'lib/selenium/webdriver/common/options.rb', line 32 def chrome(**) Chrome::Options.new(**) end |
.edge ⇒ Object Also known as: microsoftedge
45 46 47 |
# File 'lib/selenium/webdriver/common/options.rb', line 45 def edge(**) Edge::Options.new(**) end |
.firefox ⇒ Object
36 37 38 |
# File 'lib/selenium/webdriver/common/options.rb', line 36 def firefox(**) Firefox::Options.new(**) end |
.ie ⇒ Object Also known as: internet_explorer
40 41 42 |
# File 'lib/selenium/webdriver/common/options.rb', line 40 def ie(**) IE::Options.new(**) end |
.safari ⇒ Object
50 51 52 |
# File 'lib/selenium/webdriver/common/options.rb', line 50 def safari(**) Safari::Options.new(**) end |
.set_capabilities ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/selenium/webdriver/common/options.rb', line 54 def set_capabilities (W3C_OPTIONS + GRID_OPTIONS + self::CAPABILITIES.keys).each do |key| next if method_defined? key define_method key do @options[key] end define_method :"#{key}=" do |value| @options[key] = value end end end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
112 113 114 115 116 |
# File 'lib/selenium/webdriver/common/options.rb', line 112 def ==(other) return false unless other.is_a? self.class as_json == other.as_json end |
#add_option(name, value = nil) ⇒ Object
Add a new option not yet handled by bindings.
93 94 95 96 |
# File 'lib/selenium/webdriver/common/options.rb', line 93 def add_option(name, value = nil) name, value = name.first if value.nil? && name.is_a?(Hash) @options[name] = value end |
#as_json ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/selenium/webdriver/common/options.rb', line 124 def as_json(*) = @options.dup downloads = .delete(:enable_downloads) ['se:downloadsEnabled'] = downloads unless downloads.nil? = () = self.class::CAPABILITIES.each_with_object({}) do |(capability_alias, capability_name), hash| capability_value = .delete(capability_alias) hash[capability_name] = capability_value unless capability_value.nil? end raise Error::WebDriverError, "These options are not w3c compliant: #{}" unless .empty? = {self.class::KEY => } if defined?(self.class::KEY) () generate_as_json((, )) end |
#bidi? ⇒ Boolean
108 109 110 |
# File 'lib/selenium/webdriver/common/options.rb', line 108 def bidi? !!@options[:web_socket_url] end |
#enable_bidi! ⇒ Boolean
Enables WebDriver BiDi by requesting the W3C webSocketUrl capability.
104 105 106 |
# File 'lib/selenium/webdriver/common/options.rb', line 104 def enable_bidi! @options[:web_socket_url] = true end |