selenium-webdriver 4.0.0.alpha1 → 4.0.0.alpha2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +8 -1
  3. data/lib/selenium/webdriver/version.rb +1 -1
  4. metadata +2 -26
  5. data/lib/selenium/webdriver/common/bridge_helper.rb +0 -82
  6. data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +0 -36
  7. data/lib/selenium/webdriver/common/keyboard.rb +0 -70
  8. data/lib/selenium/webdriver/common/mouse.rb +0 -89
  9. data/lib/selenium/webdriver/common/options.rb +0 -177
  10. data/lib/selenium/webdriver/common/touch_action_builder.rb +0 -78
  11. data/lib/selenium/webdriver/common/touch_screen.rb +0 -123
  12. data/lib/selenium/webdriver/common/w3c_action_builder.rb +0 -212
  13. data/lib/selenium/webdriver/common/w3c_manager.rb +0 -45
  14. data/lib/selenium/webdriver/common/w3c_options.rb +0 -45
  15. data/lib/selenium/webdriver/edge/bridge.rb +0 -76
  16. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  17. data/lib/selenium/webdriver/firefox/launcher.rb +0 -111
  18. data/lib/selenium/webdriver/firefox/legacy/driver.rb +0 -83
  19. data/lib/selenium/webdriver/firefox/marionette/bridge.rb +0 -49
  20. data/lib/selenium/webdriver/firefox/marionette/driver.rb +0 -90
  21. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  22. data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  23. data/lib/selenium/webdriver/firefox/util.rb +0 -46
  24. data/lib/selenium/webdriver/remote/oss/bridge.rb +0 -594
  25. data/lib/selenium/webdriver/remote/oss/commands.rb +0 -223
  26. data/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -605
  27. data/lib/selenium/webdriver/remote/w3c/capabilities.rb +0 -310
  28. data/lib/selenium/webdriver/remote/w3c/commands.rb +0 -157
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bc17a0dfe5aefbf024e5e6c64082ba16209c7f36
4
- data.tar.gz: 6e7cda3f69ed3fcaaa591b9720b7674a3f8d7a23
3
+ metadata.gz: bfdda64a93649dd407e9a99d0547280f33492826
4
+ data.tar.gz: 7c643c63e461f17cabb016812cffa21e3001f813
5
5
  SHA512:
6
- metadata.gz: 2dfdf006f048202deedb179a6279c5000082e298ecc29c97806dc1199517bfa625ee45d6be2a2f88ece82869a5b4f593795b3940aa781539740a91d2a8a33523
7
- data.tar.gz: 85a754811a838367f4a93699b1e44b58eb3493a0ec44d9367d7be566a28ec29a820f89befda4d7f73383443d999f87d76f4cc0b484b920600c30d2b15289e496
6
+ metadata.gz: a5b8faba158cabc734b9f0fa8e7fc00bdea0b127bafc2b6f363cefd3bc2aea78d176cc5d042eda9c2271d1dd52d951bd93c8449fdb381e7fa35ebafab3ffe88f
7
+ data.tar.gz: 113f4c13373c915447172e43cc5da4435bc785693c06e6a119f9ecdd5fcd3efc01a43b8d295f655be00e5176e3a901f721d6cfa053a606639e5c0b5d5092ecc5
data/CHANGES CHANGED
@@ -1,4 +1,11 @@
1
- 4.0.0.alpha1 (unreleased)
1
+ 4.0.0.alpha2 (2019-05-02)
2
+ =========================
3
+
4
+ Ruby:
5
+ * Fixed an issue with previous alpha release which lead to removed files
6
+ being packaged inside the gem
7
+
8
+ 4.0.0.alpha1 (2019-05-01)
2
9
  =========================
3
10
 
4
11
  Ruby:
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- VERSION = '4.0.0.alpha1'
22
+ VERSION = '4.0.0.alpha2'
23
23
  end # WebDriver
24
24
  end # Selenium
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.alpha1
4
+ version: 4.0.0.alpha2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-05-01 00:00:00.000000000 Z
13
+ date: 2019-05-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  requirement: !ruby/object:Gem::Requirement
@@ -208,7 +208,6 @@ files:
208
208
  - lib/selenium/webdriver/common.rb
209
209
  - lib/selenium/webdriver/common/action_builder.rb
210
210
  - lib/selenium/webdriver/common/alert.rb
211
- - lib/selenium/webdriver/common/bridge_helper.rb
212
211
  - lib/selenium/webdriver/common/driver.rb
213
212
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
214
213
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
@@ -219,7 +218,6 @@ files:
219
218
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
220
219
  - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
221
220
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
222
- - lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb
223
221
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
224
222
  - lib/selenium/webdriver/common/driver_extensions/rotatable.rb
225
223
  - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
@@ -238,15 +236,12 @@ files:
238
236
  - lib/selenium/webdriver/common/interactions/none_input.rb
239
237
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
240
238
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
241
- - lib/selenium/webdriver/common/keyboard.rb
242
239
  - lib/selenium/webdriver/common/keys.rb
243
240
  - lib/selenium/webdriver/common/log_entry.rb
244
241
  - lib/selenium/webdriver/common/logger.rb
245
242
  - lib/selenium/webdriver/common/logs.rb
246
243
  - lib/selenium/webdriver/common/manager.rb
247
- - lib/selenium/webdriver/common/mouse.rb
248
244
  - lib/selenium/webdriver/common/navigation.rb
249
- - lib/selenium/webdriver/common/options.rb
250
245
  - lib/selenium/webdriver/common/platform.rb
251
246
  - lib/selenium/webdriver/common/port_prober.rb
252
247
  - lib/selenium/webdriver/common/profile_helper.rb
@@ -257,16 +252,10 @@ files:
257
252
  - lib/selenium/webdriver/common/socket_poller.rb
258
253
  - lib/selenium/webdriver/common/target_locator.rb
259
254
  - lib/selenium/webdriver/common/timeouts.rb
260
- - lib/selenium/webdriver/common/touch_action_builder.rb
261
- - lib/selenium/webdriver/common/touch_screen.rb
262
- - lib/selenium/webdriver/common/w3c_action_builder.rb
263
- - lib/selenium/webdriver/common/w3c_manager.rb
264
- - lib/selenium/webdriver/common/w3c_options.rb
265
255
  - lib/selenium/webdriver/common/wait.rb
266
256
  - lib/selenium/webdriver/common/window.rb
267
257
  - lib/selenium/webdriver/common/zipper.rb
268
258
  - lib/selenium/webdriver/edge.rb
269
- - lib/selenium/webdriver/edge/bridge.rb
270
259
  - lib/selenium/webdriver/edge/driver.rb
271
260
  - lib/selenium/webdriver/edge/options.rb
272
261
  - lib/selenium/webdriver/edge/service.rb
@@ -276,18 +265,10 @@ files:
276
265
  - lib/selenium/webdriver/firefox/driver.rb
277
266
  - lib/selenium/webdriver/firefox/extension.rb
278
267
  - lib/selenium/webdriver/firefox/extension/prefs.json
279
- - lib/selenium/webdriver/firefox/extension/webdriver.xpi
280
- - lib/selenium/webdriver/firefox/launcher.rb
281
- - lib/selenium/webdriver/firefox/legacy/driver.rb
282
- - lib/selenium/webdriver/firefox/marionette/bridge.rb
283
- - lib/selenium/webdriver/firefox/marionette/driver.rb
284
- - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
285
- - lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
286
268
  - lib/selenium/webdriver/firefox/options.rb
287
269
  - lib/selenium/webdriver/firefox/profile.rb
288
270
  - lib/selenium/webdriver/firefox/profiles_ini.rb
289
271
  - lib/selenium/webdriver/firefox/service.rb
290
- - lib/selenium/webdriver/firefox/util.rb
291
272
  - lib/selenium/webdriver/ie.rb
292
273
  - lib/selenium/webdriver/ie/driver.rb
293
274
  - lib/selenium/webdriver/ie/options.rb
@@ -301,13 +282,8 @@ files:
301
282
  - lib/selenium/webdriver/remote/http/curb.rb
302
283
  - lib/selenium/webdriver/remote/http/default.rb
303
284
  - lib/selenium/webdriver/remote/http/persistent.rb
304
- - lib/selenium/webdriver/remote/oss/bridge.rb
305
- - lib/selenium/webdriver/remote/oss/commands.rb
306
285
  - lib/selenium/webdriver/remote/response.rb
307
286
  - lib/selenium/webdriver/remote/server_error.rb
308
- - lib/selenium/webdriver/remote/w3c/bridge.rb
309
- - lib/selenium/webdriver/remote/w3c/capabilities.rb
310
- - lib/selenium/webdriver/remote/w3c/commands.rb
311
287
  - lib/selenium/webdriver/safari.rb
312
288
  - lib/selenium/webdriver/safari/bridge.rb
313
289
  - lib/selenium/webdriver/safari/driver.rb
@@ -1,82 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- #
23
- # Shared across bridges
24
- #
25
- # @api private
26
- #
27
-
28
- module BridgeHelper
29
- def unwrap_script_result(arg)
30
- case arg
31
- when Array
32
- arg.map { |e| unwrap_script_result(e) }
33
- when Hash
34
- element_id = element_id_from(arg)
35
- return Element.new(self, element_id) if element_id
36
-
37
- arg.each { |k, v| arg[k] = unwrap_script_result(v) }
38
- else
39
- arg
40
- end
41
- end
42
-
43
- def element_id_from(id)
44
- id['ELEMENT'] || id['element-6066-11e4-a52e-4f735466cecf']
45
- end
46
-
47
- def parse_cookie_string(str)
48
- result = {
49
- 'name' => '',
50
- 'value' => '',
51
- 'domain' => '',
52
- 'path' => '',
53
- 'expires' => '',
54
- 'secure' => false
55
- }
56
-
57
- str.split(';').each do |attribute|
58
- if attribute.include? '='
59
- key, value = attribute.strip.split('=', 2)
60
- if result['name'].empty?
61
- result['name'] = key
62
- result['value'] = value
63
- elsif key == 'domain' && value.strip =~ /^\.(.+)/
64
- result['domain'] = Regexp.last_match(1)
65
- elsif key && value
66
- result[key] = value
67
- end
68
- elsif attribute == 'secure'
69
- result['secure'] = true
70
- end
71
-
72
- unless [nil, '', '0'].include?(result['expires'])
73
- # firefox stores expiry as number of seconds
74
- result['expires'] = Time.at(result['expires'].to_i)
75
- end
76
- end
77
-
78
- result
79
- end
80
- end # BridgeHelper
81
- end # WebDriver
82
- end # Selenium
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- module DriverExtensions
23
- module HasTouchScreen
24
- def touch
25
- TouchActionBuilder.new Mouse.new(@bridge), Keyboard.new(@bridge), touch_screen
26
- end
27
-
28
- private
29
-
30
- def touch_screen
31
- TouchScreen.new @bridge
32
- end
33
- end # HasTouchScreen
34
- end # DriverExtensions
35
- end # WebDriver
36
- end # Selenium
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- #
23
- # @api private
24
- # @see ActionBuilder
25
-
26
- class Keyboard
27
- def initialize(bridge)
28
- @bridge = bridge
29
- end
30
-
31
- def send_keys(*keys)
32
- @bridge.send_keys_to_active_element Keys.encode(keys)
33
- end
34
-
35
- #
36
- # Press a modifier key
37
- #
38
- # @see Selenium::WebDriver::Keys
39
- #
40
-
41
- def press(key)
42
- assert_modifier key
43
-
44
- @bridge.send_keys_to_active_element Keys.encode([key])
45
- end
46
-
47
- #
48
- # Release a modifier key
49
- #
50
- # @see Selenium::WebDriver::Keys
51
- #
52
-
53
- def release(key)
54
- assert_modifier key
55
-
56
- @bridge.send_keys_to_active_element Keys.encode([key])
57
- end
58
-
59
- private
60
-
61
- MODIFIERS = %i[control shift alt command meta].freeze
62
-
63
- def assert_modifier(key)
64
- return if MODIFIERS.include? key
65
-
66
- raise ArgumentError, "#{key.inspect} is not a modifier key, expected one of #{MODIFIERS.inspect}"
67
- end
68
- end # Keyboard
69
- end # WebDriver
70
- end # Selenium
@@ -1,89 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- #
23
- # @api private
24
- # @see ActionBuilder
25
- #
26
-
27
- class Mouse
28
- def initialize(bridge)
29
- @bridge = bridge
30
- end
31
-
32
- def click(element = nil)
33
- move_if_needed element
34
- @bridge.click
35
- end
36
-
37
- def double_click(element = nil)
38
- move_if_needed element
39
- @bridge.double_click
40
- end
41
-
42
- def context_click(element = nil)
43
- move_if_needed element
44
- @bridge.context_click
45
- end
46
-
47
- def down(element = nil)
48
- move_if_needed element
49
- @bridge.mouse_down
50
- end
51
-
52
- def up(element = nil)
53
- move_if_needed element
54
- @bridge.mouse_up
55
- end
56
-
57
- #
58
- # Move the mouse.
59
- #
60
- # Examples:
61
- #
62
- # driver.mouse.move_to(element)
63
- # driver.mouse.move_to(element, 5, 5)
64
- #
65
-
66
- def move_to(element, right_by = nil, down_by = nil)
67
- assert_element element
68
-
69
- @bridge.mouse_move_to element.ref, right_by, down_by
70
- end
71
-
72
- def move_by(right_by, down_by)
73
- @bridge.mouse_move_to nil, Integer(right_by), Integer(down_by)
74
- end
75
-
76
- private
77
-
78
- def move_if_needed(element)
79
- move_to element if element
80
- end
81
-
82
- def assert_element(element)
83
- return if element.is_a? Element
84
-
85
- raise TypeError, "expected #{Element}, got #{element.inspect}:#{element.class}"
86
- end
87
- end # Mouse
88
- end # WebDriver
89
- end # Selenium
@@ -1,177 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- class Options
23
- #
24
- # @api private
25
- #
26
-
27
- def initialize(bridge)
28
- @bridge = bridge
29
- end
30
-
31
- #
32
- # Add a cookie to the browser
33
- #
34
- # @param [Hash] opts the options to create a cookie with.
35
- # @option opts [String] :name A name
36
- # @option opts [String] :value A value
37
- # @option opts [String] :path ('/') A path
38
- # @option opts [String] :secure (false) A boolean
39
- # @option opts [Time,DateTime,Numeric,nil] :expires (nil) Expiry date, either as a Time, DateTime, or seconds since epoch.
40
- #
41
- # @raise [ArgumentError] if :name or :value is not specified
42
- #
43
-
44
- def add_cookie(opts = {})
45
- raise ArgumentError, 'name is required' unless opts[:name]
46
- raise ArgumentError, 'value is required' unless opts[:value]
47
-
48
- opts[:path] ||= '/'
49
- opts[:secure] ||= false
50
-
51
- obj = opts.delete(:expires)
52
- opts[:expiry] = seconds_from(obj).to_i if obj
53
-
54
- @bridge.add_cookie opts
55
- end
56
-
57
- #
58
- # Get the cookie with the given name
59
- #
60
- # @param [String] name the name of the cookie
61
- # @return [Hash, nil] the cookie, or nil if it wasn't found.
62
- #
63
-
64
- def cookie_named(name)
65
- all_cookies.find { |c| c[:name] == name }
66
- end
67
-
68
- #
69
- # Delete the cookie with the given name
70
- #
71
- # @param [String] name the name of the cookie to delete
72
- #
73
-
74
- def delete_cookie(name)
75
- @bridge.delete_cookie name
76
- end
77
-
78
- #
79
- # Delete all cookies
80
- #
81
-
82
- def delete_all_cookies
83
- @bridge.delete_all_cookies
84
- end
85
-
86
- #
87
- # Get all cookies
88
- #
89
- # @return [Array<Hash>] list of cookies
90
- #
91
-
92
- def all_cookies
93
- @bridge.cookies.map { |cookie| convert_cookie(cookie) }
94
- end
95
-
96
- def timeouts
97
- @timeouts ||= Timeouts.new(@bridge)
98
- end
99
-
100
- #
101
- # @api beta This API may be changed or removed in a future release.
102
- #
103
-
104
- def logs
105
- @logs ||= Logs.new(@bridge)
106
- end
107
-
108
- #
109
- # Create a new top-level browsing context
110
- # https://w3c.github.io/webdriver/#new-window
111
- # @param type [Symbol] Supports two values: :tab and :window.
112
- # Use :tab if you'd like the new window to share an OS-level window
113
- # with the current browsing context.
114
- # Use :window otherwise
115
- # @return [String] The value of the window handle
116
- #
117
- def new_window(type = :tab)
118
- case type
119
- when :tab, :window
120
- result = @bridge.new_window(type)
121
- unless result.key?('handle')
122
- raise UnknownError, "the driver did not return a handle. " \
123
- "The returned result: #{result.inspect}"
124
- end
125
- result['handle']
126
- else
127
- raise ArgumentError, "invalid argument for type. Got: '#{type.inspect}'. " \
128
- "Try :tab or :window"
129
- end
130
- end
131
-
132
- #
133
- # @api beta This API may be changed or removed in a future release.
134
- #
135
-
136
- def window
137
- @window ||= Window.new(@bridge)
138
- end
139
-
140
- private
141
-
142
- SECONDS_PER_DAY = 86_400.0
143
-
144
- def datetime_at(int)
145
- DateTime.civil(1970) + (int / SECONDS_PER_DAY)
146
- end
147
-
148
- def seconds_from(obj)
149
- case obj
150
- when Time
151
- obj.to_f
152
- when DateTime
153
- (obj - DateTime.civil(1970)) * SECONDS_PER_DAY
154
- when Numeric
155
- obj
156
- else
157
- raise ArgumentError, "invalid value for expiration date: #{obj.inspect}"
158
- end
159
- end
160
-
161
- def strip_port(str)
162
- str.split(':', 2).first
163
- end
164
-
165
- def convert_cookie(cookie)
166
- {
167
- name: cookie['name'],
168
- value: cookie['value'],
169
- path: cookie['path'],
170
- domain: cookie['domain'] && strip_port(cookie['domain']),
171
- expires: cookie['expiry'] && datetime_at(cookie['expiry']),
172
- secure: cookie['secure']
173
- }
174
- end
175
- end # Options
176
- end # WebDriver
177
- end # Selenium