Class: Selenium::WebDriver::Options
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Options
show all
- 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
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
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
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
@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 = @options.dup
downloads = options.delete(:enable_downloads)
options['se:downloadsEnabled'] = downloads unless downloads.nil?
w3c_options = process_w3c_options(options)
browser_options = self.class::CAPABILITIES.each_with_object({}) do |(capability_alias, capability_name), hash|
capability_value = options.delete(capability_alias)
hash[capability_name] = capability_value unless capability_value.nil?
end
raise Error::WebDriverError, "These options are not w3c compliant: #{options}" unless options.empty?
browser_options = {self.class::KEY => browser_options} if defined?(self.class::KEY)
process_browser_options(browser_options)
generate_as_json(w3c_options.merge(browser_options))
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
|