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! ⇒ Object
-
#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 |
# 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 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?
104 105 106 107 108 |
# File 'lib/selenium/webdriver/common/options.rb', line 104 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.
91 92 93 94 |
# File 'lib/selenium/webdriver/common/options.rb', line 91 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.
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/selenium/webdriver/common/options.rb', line 116 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(.merge()) end |
#bidi? ⇒ Boolean
100 101 102 |
# File 'lib/selenium/webdriver/common/options.rb', line 100 def bidi? !!@options[:web_socket_url] end |
#enable_bidi! ⇒ Object
96 97 98 |
# File 'lib/selenium/webdriver/common/options.rb', line 96 def enable_bidi! @options[:web_socket_url] = true end |