selenium-webdriver 4.0.0.alpha4 → 4.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/lib/selenium/devtools.rb +30 -0
  3. data/lib/selenium/server.rb +18 -26
  4. data/lib/selenium/webdriver.rb +1 -3
  5. data/lib/selenium/webdriver/atoms/findElements.js +93 -93
  6. data/lib/selenium/webdriver/atoms/getAttribute.js +75 -59
  7. data/lib/selenium/webdriver/atoms/isDisplayed.js +72 -72
  8. data/lib/selenium/webdriver/atoms/mutationListener.js +55 -0
  9. data/lib/selenium/webdriver/chrome.rb +1 -1
  10. data/lib/selenium/webdriver/chrome/driver.rb +17 -6
  11. data/lib/selenium/webdriver/chrome/{bridge.rb → features.rb} +6 -8
  12. data/lib/selenium/webdriver/chrome/options.rb +54 -37
  13. data/lib/selenium/webdriver/chrome/profile.rb +1 -1
  14. data/lib/selenium/webdriver/chrome/service.rb +4 -2
  15. data/lib/selenium/webdriver/common.rb +7 -2
  16. data/lib/selenium/webdriver/common/driver.rb +86 -26
  17. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
  18. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +23 -1
  19. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  20. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +149 -0
  21. data/lib/selenium/webdriver/{edge_chrome/bridge.rb → common/driver_extensions/has_logs.rb} +7 -7
  22. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +6 -27
  23. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +67 -0
  24. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
  25. data/lib/selenium/webdriver/common/driver_extensions/prints_page.rb +32 -0
  26. data/lib/selenium/webdriver/common/element.rb +46 -12
  27. data/lib/selenium/webdriver/common/interactions/interaction.rb +4 -1
  28. data/lib/selenium/webdriver/common/logger.rb +6 -3
  29. data/lib/selenium/webdriver/common/manager.rb +11 -1
  30. data/lib/selenium/webdriver/common/options.rb +85 -11
  31. data/lib/selenium/webdriver/common/platform.rb +3 -1
  32. data/lib/selenium/webdriver/common/port_prober.rb +4 -6
  33. data/lib/selenium/webdriver/common/proxy.rb +4 -1
  34. data/lib/selenium/webdriver/common/search_context.rb +4 -1
  35. data/lib/selenium/webdriver/common/service.rb +13 -114
  36. data/lib/selenium/webdriver/common/service_manager.rb +151 -0
  37. data/lib/selenium/webdriver/common/takes_screenshot.rb +63 -0
  38. data/lib/selenium/webdriver/common/target_locator.rb +4 -4
  39. data/lib/selenium/webdriver/devtools.rb +144 -0
  40. data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
  41. data/lib/selenium/webdriver/{edge_html/driver.rb → devtools/exception_event.rb} +10 -13
  42. data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
  43. data/lib/selenium/webdriver/devtools/request.rb +57 -0
  44. data/lib/selenium/webdriver/edge.rb +7 -29
  45. data/lib/selenium/webdriver/{edge_chrome → edge}/driver.rb +10 -4
  46. data/lib/selenium/webdriver/edge/features.rb +39 -0
  47. data/lib/selenium/webdriver/{edge_chrome → edge}/options.rb +12 -3
  48. data/lib/selenium/webdriver/{edge_chrome → edge}/profile.rb +2 -2
  49. data/lib/selenium/webdriver/{edge_chrome → edge}/service.rb +2 -2
  50. data/lib/selenium/webdriver/firefox.rb +5 -1
  51. data/lib/selenium/webdriver/firefox/driver.rb +12 -3
  52. data/lib/selenium/webdriver/firefox/{bridge.rb → features.rb} +3 -3
  53. data/lib/selenium/webdriver/firefox/options.rb +25 -31
  54. data/lib/selenium/webdriver/firefox/profile.rb +12 -2
  55. data/lib/selenium/webdriver/firefox/service.rb +1 -1
  56. data/lib/selenium/webdriver/ie/driver.rb +1 -2
  57. data/lib/selenium/webdriver/ie/options.rb +7 -20
  58. data/lib/selenium/webdriver/ie/service.rb +4 -2
  59. data/lib/selenium/webdriver/remote/bridge.rb +37 -42
  60. data/lib/selenium/webdriver/remote/capabilities.rb +37 -34
  61. data/lib/selenium/webdriver/remote/commands.rb +1 -0
  62. data/lib/selenium/webdriver/remote/driver.rb +12 -3
  63. data/lib/selenium/webdriver/remote/http/common.rb +0 -5
  64. data/lib/selenium/webdriver/remote/http/default.rb +8 -7
  65. data/lib/selenium/webdriver/remote/http/persistent.rb +6 -0
  66. data/lib/selenium/webdriver/safari.rb +8 -1
  67. data/lib/selenium/webdriver/safari/driver.rb +3 -4
  68. data/lib/selenium/webdriver/safari/{bridge.rb → features.rb} +3 -3
  69. data/lib/selenium/webdriver/safari/options.rb +1 -33
  70. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  71. data/lib/selenium/webdriver/support/color.rb +2 -2
  72. data/lib/selenium/webdriver/support/event_firing_bridge.rb +1 -1
  73. data/lib/selenium/webdriver/support/guards.rb +95 -0
  74. data/lib/selenium/webdriver/support/guards/guard.rb +89 -0
  75. data/lib/selenium/webdriver/support/guards/guard_condition.rb +52 -0
  76. data/lib/selenium/webdriver/support/select.rb +2 -2
  77. data/lib/selenium/webdriver/version.rb +1 -1
  78. metadata +69 -32
  79. data/CHANGES +0 -1719
  80. data/Gemfile +0 -4
  81. data/LICENSE +0 -202
  82. data/README.md +0 -35
  83. data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +0 -61
  84. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -65
  85. data/lib/selenium/webdriver/edge_html/options.rb +0 -91
  86. data/lib/selenium/webdriver/edge_html/service.rb +0 -47
  87. data/selenium-webdriver.gemspec +0 -48
@@ -0,0 +1,89 @@
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 Support
23
+ class Guards
24
+
25
+ #
26
+ # Guard derived from RSpec example metadata.
27
+ # @api private
28
+ #
29
+
30
+ class Guard
31
+
32
+ attr_reader :guarded, :type, :messages, :reason
33
+
34
+ def initialize(guarded, type, guards = nil)
35
+ @guarded = guarded
36
+ @tracker = guards&.bug_tracker || ''
37
+ @messages = guards&.messages || {}
38
+ @messages[:unknown] = 'TODO: Investigate why this is failing and file a bug report'
39
+ @type = type
40
+
41
+ @reason = @guarded.delete(:reason)
42
+ end
43
+
44
+ def message
45
+ details = case @reason
46
+ when Integer
47
+ "Bug Filed: #{@tracker}/#{@reason}"
48
+ when Symbol
49
+ @messages[@reason]
50
+ when String
51
+ @reason
52
+ else
53
+ 'no reason given'
54
+ end
55
+
56
+ case @type
57
+ when :exclude
58
+ "Test not guarded because it breaks test run; #{details}"
59
+ when :exclusive
60
+ "Test does not apply to this configuration; #{details}"
61
+ else
62
+ "Test guarded; #{details}"
63
+ end
64
+ end
65
+
66
+ # Bug is present on all configurations specified
67
+ def except?
68
+ @type == :except
69
+ end
70
+
71
+ # Bug is present on all configurations not specified
72
+ def only?
73
+ @type == :only
74
+ end
75
+
76
+ # Bug is present on all configurations specified, but test can not be run because it breaks other tests
77
+ def exclude?
78
+ @type == :exclude
79
+ end
80
+
81
+ # Test only applies to configurations specified
82
+ def exclusive?
83
+ @type == :exclusive
84
+ end
85
+ end # Guard
86
+ end # Guards
87
+ end # Support
88
+ end # WebDriver
89
+ end # Selenium
@@ -0,0 +1,52 @@
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 Support
23
+ class Guards
24
+
25
+ #
26
+ # Guard derived from RSpec example metadata.
27
+ # @api private
28
+ #
29
+
30
+ class GuardCondition
31
+ attr_accessor :name, :execution
32
+
33
+ def initialize(name, condition = nil, &blk)
34
+ @name = name
35
+ @execution = if block_given?
36
+ proc(&blk)
37
+ else
38
+ proc { |guarded| guarded.include?(condition) }
39
+ end
40
+ end
41
+
42
+ def satisfied?(guard)
43
+ list = Array(guard.guarded[@name])
44
+
45
+ list.empty? || @execution.call(list)
46
+ end
47
+
48
+ end # GuardCondition
49
+ end # Guards
50
+ end # Support
51
+ end # WebDriver
52
+ end # Selenium
@@ -31,7 +31,7 @@ module Selenium
31
31
  raise ArgumentError, "unexpected tag name #{tag_name.inspect}" unless tag_name.casecmp('select').zero?
32
32
 
33
33
  @element = element
34
- @multi = ![nil, 'false'].include?(element.attribute(:multiple))
34
+ @multi = ![nil, 'false'].include?(element.dom_attribute(:multiple))
35
35
  end
36
36
 
37
37
  #
@@ -258,7 +258,7 @@ module Selenium
258
258
  end
259
259
 
260
260
  def find_by_index(index)
261
- options.select { |option| option.attribute(:index) == index.to_s }
261
+ options.select { |option| option.dom_attribute(:index) == index.to_s }
262
262
  end
263
263
 
264
264
  def find_by_value(value)
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- VERSION = '4.0.0.alpha4'
22
+ VERSION = '4.0.0.beta2'
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.alpha4
4
+ version: 4.0.0.beta2
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: 2020-01-09 00:00:00.000000000 Z
13
+ date: 2021-03-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  requirement: !ruby/object:Gem::Requirement
@@ -20,7 +20,7 @@ dependencies:
20
20
  version: '0.5'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '4.0'
23
+ version: '5.0'
24
24
  name: childprocess
25
25
  prerelease: false
26
26
  type: :runtime
@@ -31,7 +31,21 @@ dependencies:
31
31
  version: '0.5'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '4.0'
34
+ version: '5.0'
35
+ - !ruby/object:Gem::Dependency
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.2'
41
+ name: rexml
42
+ prerelease: false
43
+ type: :runtime
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.2'
35
49
  - !ruby/object:Gem::Dependency
36
50
  requirement: !ruby/object:Gem::Requirement
37
51
  requirements:
@@ -121,7 +135,7 @@ dependencies:
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: 0.73.0
138
+ version: 1.8.0
125
139
  name: rubocop
126
140
  prerelease: false
127
141
  type: :development
@@ -129,7 +143,7 @@ dependencies:
129
143
  requirements:
130
144
  - - "~>"
131
145
  - !ruby/object:Gem::Version
132
- version: 0.73.0
146
+ version: 1.8.0
133
147
  - !ruby/object:Gem::Dependency
134
148
  requirement: !ruby/object:Gem::Requirement
135
149
  requirements:
@@ -172,6 +186,20 @@ dependencies:
172
186
  - - "~>"
173
187
  - !ruby/object:Gem::Version
174
188
  version: '3.5'
189
+ - !ruby/object:Gem::Dependency
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '1.7'
195
+ name: webrick
196
+ prerelease: false
197
+ type: :development
198
+ version_requirements: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '1.7'
175
203
  - !ruby/object:Gem::Dependency
176
204
  requirement: !ruby/object:Gem::Requirement
177
205
  requirements:
@@ -186,9 +214,10 @@ dependencies:
186
214
  - - "~>"
187
215
  - !ruby/object:Gem::Version
188
216
  version: 0.9.11
189
- description: WebDriver is a tool for writing automated tests of websites. It aims
190
- to mimic the behaviour of a real user, and as such interacts with the HTML of the
191
- application.
217
+ description: |2
218
+ Selenium implements the W3C WebDriver protocol to automate popular browsers.
219
+ It aims to mimic the behaviour of a real user as it interacts with the application's HTML.
220
+ It's primarily intended for web application testing, but any web-based task can automated.
192
221
  email:
193
222
  - p0deje@gmail.com
194
223
  - titusfortner@gmail.com
@@ -197,20 +226,18 @@ executables: []
197
226
  extensions: []
198
227
  extra_rdoc_files: []
199
228
  files:
200
- - CHANGES
201
- - Gemfile
202
- - LICENSE
203
- - README.md
204
229
  - lib/selenium-webdriver.rb
230
+ - lib/selenium/devtools.rb
205
231
  - lib/selenium/server.rb
206
232
  - lib/selenium/webdriver.rb
207
233
  - lib/selenium/webdriver/atoms.rb
208
234
  - lib/selenium/webdriver/atoms/findElements.js
209
235
  - lib/selenium/webdriver/atoms/getAttribute.js
210
236
  - lib/selenium/webdriver/atoms/isDisplayed.js
237
+ - lib/selenium/webdriver/atoms/mutationListener.js
211
238
  - lib/selenium/webdriver/chrome.rb
212
- - lib/selenium/webdriver/chrome/bridge.rb
213
239
  - lib/selenium/webdriver/chrome/driver.rb
240
+ - lib/selenium/webdriver/chrome/features.rb
214
241
  - lib/selenium/webdriver/chrome/options.rb
215
242
  - lib/selenium/webdriver/chrome/profile.rb
216
243
  - lib/selenium/webdriver/chrome/service.rb
@@ -220,17 +247,20 @@ files:
220
247
  - lib/selenium/webdriver/common/driver.rb
221
248
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
222
249
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
250
+ - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
223
251
  - lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
224
252
  - lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
225
253
  - lib/selenium/webdriver/common/driver_extensions/has_location.rb
254
+ - lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
255
+ - lib/selenium/webdriver/common/driver_extensions/has_logs.rb
226
256
  - lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
227
257
  - lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
258
+ - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
228
259
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
229
260
  - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
230
261
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
231
262
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
232
- - lib/selenium/webdriver/common/driver_extensions/rotatable.rb
233
- - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
263
+ - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
234
264
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
235
265
  - lib/selenium/webdriver/common/element.rb
236
266
  - lib/selenium/webdriver/common/error.rb
@@ -259,26 +289,30 @@ files:
259
289
  - lib/selenium/webdriver/common/proxy.rb
260
290
  - lib/selenium/webdriver/common/search_context.rb
261
291
  - lib/selenium/webdriver/common/service.rb
292
+ - lib/selenium/webdriver/common/service_manager.rb
262
293
  - lib/selenium/webdriver/common/socket_lock.rb
263
294
  - lib/selenium/webdriver/common/socket_poller.rb
295
+ - lib/selenium/webdriver/common/takes_screenshot.rb
264
296
  - lib/selenium/webdriver/common/target_locator.rb
265
297
  - lib/selenium/webdriver/common/timeouts.rb
266
298
  - lib/selenium/webdriver/common/wait.rb
267
299
  - lib/selenium/webdriver/common/window.rb
268
300
  - lib/selenium/webdriver/common/zipper.rb
301
+ - lib/selenium/webdriver/devtools.rb
302
+ - lib/selenium/webdriver/devtools/console_event.rb
303
+ - lib/selenium/webdriver/devtools/exception_event.rb
304
+ - lib/selenium/webdriver/devtools/mutation_event.rb
305
+ - lib/selenium/webdriver/devtools/request.rb
269
306
  - lib/selenium/webdriver/edge.rb
270
- - lib/selenium/webdriver/edge_chrome/bridge.rb
271
- - lib/selenium/webdriver/edge_chrome/driver.rb
272
- - lib/selenium/webdriver/edge_chrome/options.rb
273
- - lib/selenium/webdriver/edge_chrome/profile.rb
274
- - lib/selenium/webdriver/edge_chrome/service.rb
275
- - lib/selenium/webdriver/edge_html/driver.rb
276
- - lib/selenium/webdriver/edge_html/options.rb
277
- - lib/selenium/webdriver/edge_html/service.rb
307
+ - lib/selenium/webdriver/edge/driver.rb
308
+ - lib/selenium/webdriver/edge/features.rb
309
+ - lib/selenium/webdriver/edge/options.rb
310
+ - lib/selenium/webdriver/edge/profile.rb
311
+ - lib/selenium/webdriver/edge/service.rb
278
312
  - lib/selenium/webdriver/firefox.rb
279
- - lib/selenium/webdriver/firefox/bridge.rb
280
313
  - lib/selenium/webdriver/firefox/driver.rb
281
314
  - lib/selenium/webdriver/firefox/extension.rb
315
+ - lib/selenium/webdriver/firefox/features.rb
282
316
  - lib/selenium/webdriver/firefox/options.rb
283
317
  - lib/selenium/webdriver/firefox/profile.rb
284
318
  - lib/selenium/webdriver/firefox/profiles_ini.rb
@@ -299,8 +333,8 @@ files:
299
333
  - lib/selenium/webdriver/remote/response.rb
300
334
  - lib/selenium/webdriver/remote/server_error.rb
301
335
  - lib/selenium/webdriver/safari.rb
302
- - lib/selenium/webdriver/safari/bridge.rb
303
336
  - lib/selenium/webdriver/safari/driver.rb
337
+ - lib/selenium/webdriver/safari/features.rb
304
338
  - lib/selenium/webdriver/safari/options.rb
305
339
  - lib/selenium/webdriver/safari/service.rb
306
340
  - lib/selenium/webdriver/support.rb
@@ -309,16 +343,18 @@ files:
309
343
  - lib/selenium/webdriver/support/color.rb
310
344
  - lib/selenium/webdriver/support/escaper.rb
311
345
  - lib/selenium/webdriver/support/event_firing_bridge.rb
346
+ - lib/selenium/webdriver/support/guards.rb
347
+ - lib/selenium/webdriver/support/guards/guard.rb
348
+ - lib/selenium/webdriver/support/guards/guard_condition.rb
312
349
  - lib/selenium/webdriver/support/relative_locator.rb
313
350
  - lib/selenium/webdriver/support/select.rb
314
351
  - lib/selenium/webdriver/version.rb
315
- - selenium-webdriver.gemspec
316
- homepage: https://github.com/SeleniumHQ/selenium
352
+ homepage: https://selenium.dev
317
353
  licenses:
318
354
  - Apache-2.0
319
355
  metadata:
320
- changelog_uri: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES
321
- source_code_uri: https://github.com/SeleniumHQ/selenium/tree/master/rb
356
+ changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
357
+ source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
322
358
  post_install_message:
323
359
  rdoc_options: []
324
360
  require_paths:
@@ -327,7 +363,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
327
363
  requirements:
328
364
  - - ">="
329
365
  - !ruby/object:Gem::Version
330
- version: '2.4'
366
+ version: '2.5'
331
367
  required_rubygems_version: !ruby/object:Gem::Requirement
332
368
  requirements:
333
369
  - - ">"
@@ -338,5 +374,6 @@ rubyforge_project:
338
374
  rubygems_version: 2.7.9
339
375
  signing_key:
340
376
  specification_version: 4
341
- summary: The next generation developer focused tool for automated testing of webapps
377
+ summary: Selenium is a browser automation tool for automated testing of webapps and
378
+ more
342
379
  test_files: []
data/CHANGES DELETED
@@ -1,1719 +0,0 @@
1
- 4.0.0.alpha4 (2020-01-09)
2
- =========================
3
-
4
- Ruby:
5
- * Added initial support for relative locators, which allow to find elements
6
- above/below/left/right/near another element. For example, you can find all
7
- the cells in a table to the right of your starting cell:
8
- start_cell = driver.find_element(css: 'td')
9
- right_cells = driver.find_elements(relative: {tag_name: 'td', right: start_cell})
10
- The documentation is still lacking so refer to examples in df6be2e962.
11
- * Added ability to silence certain logger messages by using it's identifiers:
12
- Selenium::WebDriver.logger.ignore(:driver_path)
13
- * Added new dependency: websocket. It's used for communicating with Chrome DevTools.
14
- * Loosened childprocess dependency to allow using version 2.0+.
15
- * Loosened rubyzip dependency to allow using version 2.0+.
16
- * Fixed Errno::EACCES error on Linux DeX and similar distributes
17
-
18
- Chrome:
19
- * Added initial support for communicating with Chrome DevTools. The implementation
20
- is very basic and lacks CDP domains, events and types - those will be added
21
- in future releases. Still, it allows to execute simple commands to DevTools:
22
- driver.devtools.send('Page.navigate', {url: 'https://google.com'})
23
-
24
- 4.0.0.alpha3 (2019-07-08)
25
- =========================
26
-
27
- Ruby:
28
- * All documented driver capabilities supported in respective browser Options class by constructor and accessor
29
- * Driver constructor :options and :desired_capabilities generate the same capabilities for local and remote execution
30
- * Deprecated :options as keyword for initializing browser Options classes
31
-
32
- Chrome:
33
- * Add support for browser logging with latest versions of chromedriver
34
-
35
- Edge:
36
- * Add support for Chromium based implementation
37
-
38
- 4.0.0.alpha2 (2019-05-02)
39
- =========================
40
-
41
- Ruby:
42
- * Fixed an issue with previous alpha release which lead to removed files
43
- being packaged inside the gem
44
-
45
- 4.0.0.alpha1 (2019-05-01)
46
- =========================
47
-
48
- Ruby:
49
- * Removed Mouse and Keyboard as their implementations are not compliant to WebDriver specification
50
- * Removed TouchActionBuilder as its implementation is not compliant to WebDriver specification
51
- * Change ActionBuilder to be fully compliant to WebDriver specification
52
- * Change Manager to be fully compliant to WebDriver specification
53
- * Removed all deprecated errors that are not compliant to WebDriver specification
54
- * Update minimum required Ruby version to 2.4
55
- * Changed capabilities to use only those that are compliant to WebDriver specification
56
- * Removed deprecated timeout setter on default HTTP client
57
- * Removed deprecated Remote::W3C::Capabilities
58
- * Fixed an issue when services are not shutdown properly
59
-
60
- Chrome:
61
- * Removed support for OSS mode - use W3C mode instead by using
62
- Selenium::WebDriver::Chrome::Options.new(options: {w3c: true})
63
-
64
- PhantomJS:
65
- * Removed support for PhantomJS driver
66
-
67
- Firefox:
68
- * Removed support for legacy Firefox driver - use GeckoDriver instead
69
- * Removed deprecated outdated capabilities
70
- * Fixed an issue when passing :profile string to Firefox::Options.new would
71
- result in NoMethodError. Now it will find a profile with such name on your
72
- system and use it accordingly (issue #7119)
73
-
74
- 3.142.7 (2019-12-27)
75
- ====================
76
-
77
- Ruby:
78
- * Fix keyword argument deprecations in Ruby 2.7 (thanks @connorshea)
79
-
80
- 3.142.6 (2019-10-04)
81
- ====================
82
-
83
- Ruby:
84
- * Loosen ChildProcess dependency so that 3.0+ can be used (thanks @jaredbeck)
85
-
86
- 3.142.5 (2019-10-01)
87
- ====================
88
-
89
- Ruby:
90
- * Loosen RubyZip dependency so that 1.3+ can be used (thanks @vtamara)
91
-
92
- 3.142.4 (2019-09-02)
93
- ====================
94
-
95
- Chrome:
96
- * Added support for new command for getting logs in ChromeDriver 76+
97
- with W3C mode on
98
-
99
- 3.142.3 (2019-05-21)
100
- ====================
101
-
102
- Firefox:
103
- * Fixed a regression when Firefox binary path was not sent to GeckoDriver
104
- by default and browser could not be located (issue #7219)
105
-
106
- 3.142.2 (2019-05-11)
107
- ====================
108
-
109
- Chrome:
110
- * Fixed an issue when getting/setting network conditions and sending CDP
111
- commands didn't work with Grid (issue #7174)
112
-
113
- Safari:
114
- * Fixed an issue when getting/setting permissions and attaching debugger
115
- didn't work with Grid (issue #7174)
116
-
117
- 3.142.1 (2019-05-07)
118
- ====================
119
-
120
- Firefox:
121
- * Fixed an issue when processing error in legacy driver would result
122
- in NoMethodError (issue #7178)
123
-
124
- 3.142.0 (2019-04-24)
125
- ====================
126
-
127
- Ruby:
128
- * Fixed an issue when services are not shutdown properly
129
-
130
- Firefox:
131
- * Fixed an issue when passing :profile string to Firefox::Options.new would
132
- result in NoMethodError. Now it will find a profile with such name on your
133
- system and use it accordingly (issue #7119)
134
- * Fixed an issue when instantiating Firefox driver with capabilities having
135
- :marionette would result in NoMethodError (issue #7120)
136
-
137
- 3.141.5926 (2019-04-18)
138
- =======================
139
-
140
- Ruby:
141
- * Fixed an issue when Selenium itself would print deprecation warning
142
- for TimeoutError
143
- * Fixed a regression when socket poller would raise Errno::EBADF on JRuby
144
-
145
- 3.141.592 (2019-04-18)
146
- ======================
147
-
148
- Ruby:
149
- * Updated minimum required Ruby version to 2.3
150
- * Added support for ChildProcess 1.x
151
- * Improved socket connection waiting (thanks @N0xFF)
152
- * Changed waiting to use monotonic clock instead of Time class to avoid
153
- collisions with Timecop and similar gems
154
- * Removed deprecated PortProber.random
155
- * Added strictFileInteractability to the list of known capabilities
156
- * Added InsecureCertificateError
157
- * Added support for setting SOCKS version in proxy (issue #6938)
158
- * Implemented new window command using driver.manage.new_window. The command
159
- is supported by recent Firefox, Safari and IE drivers (thanks @dylanlive)
160
- * Added support for passing proc to driver_path setter in Service classes
161
- * Deprecated all errors which don't exist in WebDriver specification
162
- * Deprecated TouchActionBuilder which is not a part of WebDriver specification
163
- and is only supported by Chrome, but is likely to be dropped in v75.
164
- ActionBuilder should be used instead
165
- * Deprecated using Remote::W3C::Capabilities in favor of Remote::Capabilities
166
-
167
- Chrome:
168
- * Added support for execute CDP commands using Driver#execute_cdp
169
- * Removed GPU disabling in ChromeDriver when using Options#headless!
170
- * Switched suggested download URL to HTTPS (thanks @JLLeitschuh)
171
- * Added support for instantiating service class directly and moved all driver
172
- executable configuration there (command-line arguments, port, etc.)
173
- Passing driver_opts, driver_path and port to driver initializer is now
174
- deprecated so use Selenium::WebDriver::Service.chrome instead, which allows
175
- to customize executable behavior in similar way. Once initialized, this
176
- object can be passed as :service keyword during driver initialization.
177
- * Deprecated Chrome.driver_path= in favor of Service::Chrome.driver_path=
178
-
179
- Edge:
180
- * Added support for instantiating service class directly and moved all driver
181
- executable configuration there (command-line arguments, port, etc.)
182
- Passing driver_opts, driver_path and port to driver initializer is now
183
- deprecated so use Selenium::WebDriver::Service.firefox instead, which allows
184
- to customize executable behavior in similar way. Once initialized, this
185
- object can be passed as :service keyword during driver initialization
186
- * Deprecated Edge.driver_path= in favor of Service::Edge.driver_path=
187
-
188
- Firefox:
189
- * Deprecated legacy driver in favor of GeckoDriver
190
- * Fixed Firefox path lookup on Cygwin (issue #6908)
191
- * Added support for instantiating service class directly and moved all driver
192
- executable configuration there (command-line arguments, port, etc.)
193
- Passing driver_opts, driver_path and port to driver initializer is now
194
- deprecated so use Selenium::WebDriver::Service.firefox instead, which allows
195
- to customize executable behavior in similar way. Once initialized, this
196
- object can be passed as :service keyword during driver initialization
197
- * Deprecated Firefox.driver_path= in favor of Service::Firefox.driver_path=
198
- * Deprecated outdated capabilities
199
-
200
- IE:
201
- * Fixed an issue when native events could not be disabled using IE::Options
202
- initializer
203
- * Added support for instantiating service class directly and moved all driver
204
- executable configuration there (command-line arguments, port, etc.)
205
- Passing driver_opts, driver_path and port to driver initializer is now
206
- deprecated so use Selenium::WebDriver::Service.ie instead, which allows
207
- to customize executable behavior in similar way. Once initialized, this
208
- object can be passed as :service keyword during driver initialization
209
- * Deprecated IE.driver_path= in favor of Service::IE.driver_path=
210
-
211
- Safari:
212
- * Added support for instantiating service class directly and moved all driver
213
- executable configuration there (command-line arguments, port, etc.)
214
- Passing driver_opts, driver_path and port to driver initializer is now
215
- deprecated so use Selenium::WebDriver::Service.safari instead, which allows
216
- to customize executable behavior in similar way. Once initialized, this
217
- object can be passed as :service keyword during driver initialization
218
- * Deprecated Safari.driver_path= in favor of Service::Safari.driver_path=
219
-
220
- Remote:
221
- * Change default HTTP client to use persistent connections
222
-
223
- 3.141.0 (2018-10-31)
224
- ====================
225
-
226
- Edge:
227
- * Added new Edge::Options class that should be used to customize browser
228
- behavior. The instance of options class can be passed to driver
229
- initialization using :options key. Please, note that using options require
230
- insiders builds of Edge.
231
-
232
- Chrome:
233
- * Included HasLocation to Chrome driver (thanks @sidonath).
234
- * Updated endpoint to send Chrome Debugging Protocol commands. The old one
235
- has been deprecated in ChromeDriver 40.
236
-
237
- Safari:
238
- * Added new Safari::Options class that should be used to customize browser
239
- behavior. The instance of options class can be passed to driver
240
- initialization using :options key. Please, note that using options require
241
- Safari 12+.
242
-
243
- Remote:
244
- * Allow passing Options instances to remote driver initialization using
245
- :options key. This feature allows to use browser-specific options classes
246
- (Chrome::Options, Firefox::Options, etc.) and pass them to Server/Grid
247
- instead of capabilities.
248
-
249
- 3.14.1 (2018-10-03)
250
- ===================
251
-
252
- Ruby:
253
- * Added a workaround to ignore Errno::EALREADY error when starting drivers
254
- on Windows Subsystem for Linux
255
- * Changed default pause duration to 0 for Selenium::WebDriver::Driver#action#pause (thanks @twalpole)
256
- * Deprecated Selenium::WebDriver::PortProber#random
257
- in favor of Selenium::WebDriver::PortProber#above
258
- * Fixed a bug when Selenium::WebDriver::Element#drag_and_drop would not
259
- work in certain cases
260
- * Updated RubyZip dependency to 1.2.2 which fixes security vulnerability
261
-
262
- Edge:
263
- * Added support for --silent driver flag
264
- * Fixed an incorrect dash symbol when passing arguments to MicrosoftWebDriver.exe
265
-
266
- Firefox:
267
- * Fixed an incorrect dash symbol when passing arguments to GeckoDriver
268
-
269
- Safari:
270
- * Fixed a bug when Selenium::WebDriver::Element#displayed? would raise error
271
- in Safari 12
272
-
273
- 3.14.0 (2018-08-03)
274
- ===================
275
-
276
- Ruby:
277
- * Allow to customize default duration of movement of pointer actions using
278
- Driver#action#default_move_duration= (thanks @prakharrr)
279
- * Fixed an accidentally removed Selenium::WebDriver::Error::TimeoutError (thanks @twalpole)
280
-
281
- Server:
282
- * Fixed an issue when Server.latest couldn't parse the version
283
-
284
- Remote:
285
- * Added support for uploading multiple files by passing them as a string
286
- separated by \n to Element#send_keys. Please, note that not all the drivers
287
- have multiple file upload implemented (tested to work in ChromeDriver).
288
-
289
- 3.13.1 (2018-07-20)
290
- ===================
291
-
292
- Chrome:
293
- * Fixed an issue when empty Chrome options would cause DevToolsActivePort issue (thanks @artplan1)
294
-
295
- Remote:
296
- * Support detecting local files (thanks @mskvn)
297
-
298
- 3.13.0 (2018-06-25)
299
- ===================
300
-
301
- Ruby:
302
- * Address warnings for redefined methods and uninitialized instance variables
303
-
304
- Chrome:
305
- * Chrome options capabilities updated to use goog:chromeOptions.
306
- Note that Selenium now requires ChromeDriver v2.31 at minimum.
307
- * Added ability to tell headless Chrome to save files using Driver#download_path= (thanks @pelly)
308
-
309
- 3.12.0 (2018-05-08)
310
- ===================
311
-
312
- Ruby:
313
- * Added User-Agent header to requests from Selenium to give remote
314
- ends more visibility into distribution of clients (thanks @sah)
315
- * Added Selenium::WebDriver::VERSION constant (thanks @sah)
316
- * Added changelog link to RubyGems page
317
- * Fixed a bug when requests were sent with empty Content-Type,
318
- which should instead be application/json (issue #5615 and #5659)
319
- * Fixed a bug when failed connection attempt was retried without
320
- grace period for remote to resolve its problem (thanks @amckinley42)
321
- * Fixed a bug with accidentally removed HasNetworkConnection driver extension
322
-
323
- Chrome:
324
- * Fixed a bug when deprecation message for using Chrome extensions
325
- was incorrectly shown (thanks @treby)
326
-
327
- Safari:
328
- * Added support getting permissions via Driver#permissions
329
- * Added support setting permissions via Driver#permissions=
330
- * Added support enabling web inspector via Driver#attach_debugger
331
-
332
- 3.11.0 (2018-03-11)
333
- ===================
334
-
335
- Ruby:
336
- * No changes in Ruby bindings for this release
337
-
338
- 3.10.0 (2018-03-02)
339
- ===================
340
-
341
- Ruby:
342
- * Added Errno::EAFNOSUPPORT to the list of ignored errors when finding port (thanks @jtarchie)
343
- * Added automatic conversion of noProxy to the list of strings as required
344
- by W3C WebDriver Specification (issue #5004)
345
-
346
- Chrome:
347
- * Added Chrome::Options#headless! shortcut to enable headless mode (thanks @pulkitsharma07)
348
-
349
- IE:
350
- * Added support for getting local storage using Driver#local_storage
351
- * Added support for getting session storage using Driver#session_storage
352
-
353
- 3.9.0 (2018-02-06)
354
- ==================
355
-
356
- Ruby:
357
- * Fixed a bug when omitted capabilities caused NoMethodError (issue #5185)
358
- * Fixed a bug when getting page source in W3C dialect caused WebDriverError (thanks @KazuCocoa)
359
- * Fixed a bug when getting backtrace of server error would case NoMethodError (thanks @mcking49)
360
- * Updated YARD to ~> 0.9.11
361
- * Updated rubyzip to ~> 1.2 (thanks @michaelglass)
362
-
363
- Chrome:
364
- * Added support for getting network conditions via Driver#network_conditions
365
- * Added support for setting network conditions via Driver#network_conditions=
366
- * Added support to allow driver respond with custom error codes (issue #5376)
367
-
368
- Firefox:
369
- * Improved GeckoDriver binary lookup mechanism (issue #5240)
370
-
371
- 3.8.0 (2017-12-01)
372
- ==================
373
-
374
- Ruby:
375
- * Removed deprecated Alert#authenticate
376
- * Removed deprecated :port initialization argument of Remote::Bridge.
377
- Use :url instead.
378
- * Removed deprecated Selenium::WebDriver::Remote::W3CCapabilities.
379
- Use Selenium::WebDriver::Remote::Capabilities instead.
380
-
381
- IE:
382
- * Remove deprecated :log_file driver initialization argument.
383
- Use driver_opts: {log_file: ''} instead.
384
- * Remove deprecated :log_level driver initialization argument.
385
- Use driver_opts: {log_level: ''} instead.
386
- * Remove deprecated :implementation driver initialization argument.
387
- Use driver_opts: {implementation: ''} instead.
388
- * Removed deprecated :service_args driver initialization argument.
389
- Use driver_opts: {args: ['--some-switch']} instead.
390
-
391
- Chrome:
392
- * Removed deprecated :service_log_path driver initialization argument.
393
- Use driver_opts: {log_path: 'path'} instead.
394
- * Removed deprecated :service_args driver initialization argument.
395
- Use driver_opts: {args: ['--some-switch']} instead.
396
-
397
- Firefox:
398
- * Removed deprecated :service_args driver initialization argument.
399
- Use driver_opts: {args: ['--some-switch']} instead.
400
-
401
- Safari:
402
- * Removed deprecated :service_args driver initialization argument.
403
- Use driver_opts: {args: ['--some-switch']} instead.
404
-
405
- Edge:
406
- * Removed deprecated :service_args driver initialization argument.
407
- Use driver_opts: {args: ['--some-switch']} instead.
408
-
409
- 3.7.0 (2017-11-03)
410
- ==================
411
-
412
- Ruby:
413
- * Added //rb:lint task to check codebase using RuboCop (thanks @RustyNail)
414
- * Fixed codebase to comply more to Ruby community style guide (thanks @RustyNail)
415
- * Packaged all dependencies to Selenium repository so that non-Ruby committers
416
- can build and test Ruby bindings easier
417
- * Update errors list according to latest changes of specification (thanks @jaysonesmith)
418
-
419
- Firefox:
420
- * Added Firefox::Options#headless! shortcut to enable headless mode (thanks @franzliedke)
421
-
422
- 3.6.0 (2017-09-25)
423
- ==================
424
-
425
- Edge:
426
- * Fixed a bug when execute_script failed using server + Edge (issue #4651)
427
-
428
- Firefox:
429
- * Fixed a bug when web extension failed to install using profile class (issue #4093)
430
-
431
- PhantomJS:
432
- * Support is deprecated in favor of headless Chrome/Firefox or HTMLUnit.
433
- PhantomJS is no longer actively developed, and support will eventually
434
- be dropped.
435
-
436
- 3.5.2 (2017-09-07)
437
- ==================
438
-
439
- Ruby:
440
- * Removed platformVersion from W3C payload (issue #4641)
441
- * Fixed a bug when proxy type was not compliant to specification (issue #4574)
442
- * Added support for passing speed to flick action (issue #4549)
443
- * Using TouchActionBuilder no longer prints mouse/key deprecations
444
- * Deprecated Alert#authenticate
445
- * Added support for DEBUG environment variable which enables full debug mode in gem
446
-
447
- Firefox:
448
- * Fixed a bug when page load timeout was not properly constructed in new session payload
449
- * Fixed a bug when GeckoDriver error stacktrace was not displayed (issue #3683)
450
-
451
- Chrome:
452
- * Added workaround for the case when findElements call returns null (issue #4555)
453
- * Chrome::Driver now includes touch actions by default
454
-
455
- 3.5.1 (2017-08-15)
456
- ==================
457
-
458
- Ruby:
459
- * Fixed a bug when Chrome/Firefox (and probably other) drivers could not be
460
- started on JRuby (issue #4453).
461
-
462
- 3.5.0 (2017-08-10)
463
- ==================
464
-
465
- Firefox:
466
- * Firefox subprocess output is now only redirected when debug is set (issue #4311)
467
- * Fixed a bug where non-integers could be sent when setting window rect
468
- * Fixed Firefox location detection on Windows_x64 (thanks kamenlitchev)
469
- * Fixed passing of profile with a W3C compatible remote end
470
-
471
- IE:
472
- * Added new IE::Options class that should be used to customize browser
473
- behavior (native events, element scroll behavior, etc).
474
- The instance of options class can be passed to driver initialization using
475
- :options key. Old way of passing these customization directly to driver
476
- initialization is deprecated.
477
-
478
- 3.4.4 (2017-07-13)
479
- ==================
480
-
481
- Firefox:
482
- * Added support for GeckoDriver install addon command (issue 4215).
483
- * Added support for GeckoDriver uninstall addon command (issue 4215).
484
- * Raise error when passing :firefox_options as capability.
485
-
486
- Ruby:
487
- * Fixed a bug when childprocess were leaking /dev/null file descriptor (issue 4285).
488
- * Make Remote::Driver class so that it can be inherited from.
489
-
490
- 3.4.3 (2017-06-16)
491
- ==================
492
-
493
- Ruby:
494
- * Fixed a regression when passing symbol as :desired_capabilities caused NoMethodError (issue 4187).
495
-
496
- 3.4.2 (2017-06-14)
497
- ==================
498
-
499
- Ruby:
500
- * Added unhandledPromptBehavior to the list of known capabilities.
501
- * Added timeouts to the list of known capabilities.
502
- * Fixed a regression when passing hash as :desired_capabilities caused NoMethodError (issue 4172, thanks Thomas Walpole).
503
- * Fixed a regression when extension capabilities (the ones that have ":" inside)
504
- were filtered out when doing protocol handshake.
505
- * Improved handling of capability names passed as plain camelCased strings
506
- vs Rubyish snake_cased symbols when doing protocol handshake.
507
-
508
- Chrome:
509
- * Fixed a regression when passing :switches to driver initialization was ignored.
510
-
511
- 3.4.1 (2017-06-13)
512
- ==================
513
-
514
- Ruby:
515
- * Implemented a new dual-dialect mechanism for communication with drivers
516
- (a.k.a. protocol handshake). There shouldn't be any noticeable differences
517
- but since this is a significant refactoring of internal APIs, some bugs
518
- could slip into the release.
519
- * Renamed ElementClickIntercepted to ElementClickInterceptedError.
520
- * Renamed ElementNotInteractable to ElementNotInteractableError.
521
- * Deprecated W3CCapabilities in favor of Capabilities (it was meant to be private API).
522
- * Added a warning when trying to save screenshot without .png extension (thanks @abotalov).
523
-
524
- IE:
525
- * Added support for both old IEDriver which uses OSS dialect of JSON wire
526
- protocol (<= 3.4.0) and new IEDriver which uses W3C dialect (not yet released).
527
-
528
- Safari:
529
- * Removed runtime dependencies used for old SafariDriver (u.g. websocket).
530
-
531
- Chrome:
532
- * Added new Chrome::Options class that should be used to customize browser
533
- behavior (command line arguments, extensions, preferences, mobile emulation, etc.).
534
- The instance of options class can be passed to driver initialization using
535
- :options key. Old way of passing these customization directly to driver
536
- initialization is deprecated.
537
-
538
- Firefox:
539
- * Added new Firefox::Options class that should be used to customize browser
540
- behavior (command line arguments, profile, preferences, Firefox binary, etc.).
541
- The instance of options class can be passed to driver initialization using
542
- :options key. Old way of passing these customization directly to driver
543
- initialization is deprecated.
544
-
545
- 3.4.0 (2017-04-21)
546
- ===================
547
-
548
- Edge:
549
- * Fix bug when response is not wrapped with "value"
550
-
551
- Firefox:
552
- * Support geckodriver v0.16
553
-
554
- Ruby:
555
- * Support ElementClickIntercepted error from W3C spec
556
- * Support ElementNotInteractable error from W3C spec
557
- * Implement window rect commands
558
- * Implement window minimize command
559
-
560
- 3.3.0 (2017-03-07)
561
- ===================
562
-
563
- Firefox:
564
- * geckodriver v0.15 or later is required
565
-
566
- W3C:
567
- * Support for command response data to be wrapped in a 'value' key
568
- * Support for updated timeout formats
569
-
570
- 3.2.2 (2017-03-01)
571
- ===================
572
-
573
- Ruby:
574
- * Fix bug for supporting Logger output on Ruby versions < 2.3
575
- * Add more logging and adjust output levels
576
-
577
- Remote:
578
- * Support for creating Remote session with browser name and url parameters
579
-
580
- 3.2.1 (2017-02-24)
581
- ===================
582
-
583
- Ruby:
584
- * Fix bug for supporting Logger on Ruby versions < 2.3
585
-
586
- 3.2.0 (2017-02-22)
587
- ===================
588
-
589
- Ruby:
590
- * Implement new Logger class
591
- * Fix issue with chromedriver process leader incompatibility on Win7 (issue 3512)
592
-
593
- 3.1.0 (2017-02-14)
594
- ===================
595
-
596
- Firefox:
597
- * implement W3C actions endpoint
598
-
599
- 3.0.8 (2017-02-08)
600
- ===================
601
-
602
- Firefox:
603
- * Fix signature of element returned from #active_element
604
-
605
- 3.0.7 (2017-02-06)
606
- ===================
607
-
608
- Firefox:
609
- * Fix signature of element arrays returned from #find_elements (issue 3471)
610
-
611
- 3.0.6 (2017-02-05)
612
- ===================
613
-
614
- Firefox:
615
- * Implement W3C window position
616
- * Update implementation for W3C send text to alert
617
- * Implement timeout settings
618
- * Remove default capabilities (thanks lmtierney)
619
- * Fix signature of elements returned from #execute_script (thanks Thomas Walpole)
620
-
621
- 3.0.5 (2016-12-27)
622
- ===================
623
-
624
- Ruby:
625
- * Support for Ruby 2.4.0 (Thanks jamespdo)
626
-
627
- 3.0.4 (2016-12-21)
628
- ===================
629
-
630
- Firefox:
631
- * Implement profile support via geckodriver (#2933 thanks lmtierney)
632
-
633
- Ruby:
634
- * Fix bug preventing use of Curb client (#2951 thanks clarkenciel)
635
- * Support Net::HTTP::Persistent version 3 (#3219 thanks Pete Johns)
636
- * Allow Net::HTTP::Default to set open_timout and read_timeout independently (#3264 thanks richseviora)
637
- * Change default for Net::HTTP::Default#open_timeout to facilitate debuggers (#3264 thanks richseviora)
638
-
639
- 3.0.3 (2016-11-26)
640
- ===================
641
-
642
- Ruby:
643
- * Allow drivers to be executed from batch files on Windows
644
-
645
- 3.0.2 (2016-11-25)
646
- ===================
647
-
648
- Ruby:
649
- * Implement #driver_path as parameter when initializing a driver (thanks lmtierney)
650
- * Improve Ruby syntax in driver commands (thanks joe_schulte)
651
- * Improve performance when shutting down drivers (thanks lmtierney)
652
- * Fix bug for finding open ports on Windows (thanks kou1okada)
653
- * Fix bug in auto detection of drivers which allowed selection of non-executable binaries
654
-
655
- W3C:
656
- * Implement #cookie_named and #delete_all_cookies methods (thanks lmtierney)

657
- * Implement element #property method (thanks lmtierney)

658
-
659
- Chrome:
660
- * Fix bug in switches (thanks danvine)

661
-
662
- 3.0.1 (2016-11-06)
663
- ===================
664
-
665
- Ruby:
666
- * Always send JSON Wire Protocol commands to server instead of W3C commands
667
-
668
- 3.0.0 (2016-10-13)
669
- ===================
670
-
671
- Firefox:
672
- * Update :firefox_options support for geckodriver 0.11
673
-
674
- 3.0.0.beta4 (2016-09-29)
675
- ===================
676
-
677
- Ruby:
678
- * Remove support for deprecated driver options
679
- * Add support for latest driver options
680
- * Add support for :port parameter for launching driver
681
- * Add support for :service_args parameter for driver command line switches
682
- * Improve reliability by increasing service shutdown timeout (#2815; thanks John Barbuto )

683
-
684
- Firefox:
685
- * Add support for :firefox_options in geckodriver
686
-
687
- Safari:
688
- * Remove support for legacy Safari driver (use Apple's driver built in to Safari 10+)
689
-
690
- Chrome:
691
- * Set chromedriver to not log by default
692
-
693
- 3.0.0.beta3.1 (2016-09-03)
694
- ===================
695
-
696
- Firefox:
697
- * Fixed bug - legacy firefox extension included in gem
698
-
699
- 3.0.0.beta3 (2016-09-01)
700
- ===================
701
-
702
- Firefox:
703
- * Implemented w3c getAttribute with javascript atom
704
-
705
- 3.0.0.beta2.1 (2016-08-03)
706
- ===================
707
-
708
- Ruby:
709
- * Fixed bug in collections
710
-
711
- 3.0.0.beta2 (2016-08-02)
712
- ===================
713
-
714
- Firefox:
715
- * Fixed bug with form submission
716
- * Improved w3c element handling
717
-
718
- 3.0.0.beta1 (2016-07-28)
719
- ===================
720
-
721
- Ruby:
722
- * Remove support for RC client
723
- * Remove support for Ruby < 2.0
724
- * Update code to support designated style guidelines
725
- * Chrome/GeckoDriver/PhantomJS/IE/Edge drivers are refactored to use standard
726
- service class (issue 1797)
727
- * Option `:timeout` was removed from IE server (issue 1797)
728
-
729
- Chrome:
730
- * Remove override of default chromedriver behavior for chrome.detach (issue 2418)
731
-
732
- Firefox:
733
- * Rename wires to geckodriver
734
- * Change default usage from FirefoxDriver to geckodriver
735
-
736
- Safari:
737
- * Initial support for Apple's Safari Driver in Sierra (issue #2475)
738
-
739
- Android and iPhone:
740
- * Remove support for deprecated classes (Issue #2476)
741
-
742
- 2.53.0 (2016-03-15)
743
- ===================
744
-
745
- Ruby:
746
- * Removed dependency on "multi_json" (issue 1632)
747
- * Properly handle namespaces in install manifest of Firefox add-ons (issue 1143)
748
- * Improve error handling when stopping browsers (thanks bsedat)
749
- * Fix deselecting options in select lists (thanks glib-briia)
750
- * Fix w3c error handling
751
- * Update w3c Capabilities support
752
-
753
- IE:
754
- * support for alert credentials (issue #1698, thanks Alan Baird & trabulmonkee)
755
-
756
- 2.52.0 (2016-02-12)
757
- ===================
758
-
759
- No Ruby changes in this release.
760
-
761
- 2.51.0 (2016-02-05)
762
- ===================
763
-
764
- No Ruby changes in this release.
765
-
766
- 2.50.0 (2016-01-27)
767
- ===================
768
-
769
- Firefox:
770
- * Fix bug for locating binary in local path (issue 1523, thanks Gopal Patel)
771
-
772
- 2.49.0 (2016-01-13)
773
- ===================
774
-
775
- Ruby:
776
- * support for SessionNotCreatedError (thanks Alexander Bayandin)
777
-
778
- Safari:
779
- * Limit support to OS X (issue 1186)
780
- * support for multiple concurrent drivers
781
-
782
- PhantomJS:
783
- * Implement Socket locking
784
-
785
- IE:
786
- * support for multiple concurrent drivers
787
-
788
- Chrome:
789
- * prevent 404 error when shutting down Chrome service (thanks Fumiaki MATSUSHIMA)
790
- * logging turned on by default
791
- * support local storage capabilities
792
-
793
- Firefox:
794
- * support setting the location of Firefox binary to use when run locally
795
- * add default lookup of Homebrew Cask default directory (issue 1437)
796
-
797
- W3C Specification:
798
- * support for using with Remote WebDriver
799
- * implement window size command
800
- * implement window position command
801
- * implement element size command
802
- * implement element position command
803
- * implement full screen window command
804
- * implement page source command
805
-
806
- 2.48.1 (2015-10-13)
807
- ===================
808
-
809
- Firefox:
810
- * Mozilla's Wires Driver for Marionette works with Remote WebDriver
811
-
812
- 2.48.0 (2015-10-07)
813
- ===================
814
-
815
- Firefox:
816
- * Initial implementation of Mozilla's Wires Driver for Marionette; Supported in version 43 and higher
817
-
818
- Edge:
819
- * Fix execution with Remote Server
820
- * Fix Javascript Execution
821
- * Implement Alert Handling
822
- * Implement Window Switching
823
-
824
- Ruby:
825
- * Initial implementation of W3C WebDriver syntax to support Mozilla Wires
826
- * Change to RSpec expect syntax
827
- * Specs can be run from relative directories
828
-
829
-
830
- 2.47.1 (2015-07-31)
831
- ===================
832
-
833
- Edge:
834
- * Initial implementation of Microsoft's EdgeDriver
835
-
836
-
837
- 2.47.0 (2015-07-29)
838
- ===================
839
-
840
- Safari:
841
- * Remove support for installing additional extensions due to architectural changes introduced with Safari 7
842
-
843
- 2.46.2 (2015-06-05)
844
- ===================
845
- * Fix encoding issue which prevents Element#send_keys to work on Ruby < 2.0 (#621)
846
-
847
- 2.46.1 (2015-06-04)
848
- ===================
849
- * Fix aborted rubygems.org release
850
-
851
- 2.46.0 (2015-06-04)
852
- ===================
853
-
854
- Firefox:
855
- * Support for Firefox 38
856
- * Fix performance bug by not forcing garbage collection in httpd.js
857
-
858
- Chrome:
859
- * Fixed ChromeDriver port race condition (#449 - thanks Jason Anderson)
860
-
861
- Ruby changes:
862
- * Retry binding to ports unavailable by EADDRNOTAVAIL (#394).
863
- * Remove Presto-Opera support (Blink-based Opera still supported)
864
-
865
- 2.45.0 (2015-02-28)
866
- ===================
867
-
868
- Firefox:
869
- * Native events in Firefox relied on an API that Mozilla no longer
870
- provides. As such, fall back to synthesized events on recent Firefox
871
- versions.
872
-
873
- Ruby changes:
874
- * Allow switching windows when current window is closed (thanks Titus Fortner).
875
- * Add :javascript_enabled to Android capabilities.
876
-
877
- 2.44.0 (2014-10-05)
878
- ===================
879
-
880
- No Ruby changes in this release.
881
-
882
- Firefox:
883
- * Native event support for Firefox 24, 31, 32 and 33
884
-
885
- 2.43.0 (2014-09-09)
886
- ===================
887
-
888
- * Make sure UnhandledAlertErrors includes the alert text if provided by the driver.
889
- * Firefox
890
- - Make sure the browser process is properly killed if silent startup hangs (#7392)
891
- - native events support for Firefox 24, 31 and 32
892
- * Loosen websocket dependency to ~> 1.0
893
- * Add support for `switch_to.parent_frame` (thanks abotalov)
894
- * Fix download location for Selenium::Server.{latest,get} (#7049 - thanks marekj)
895
-
896
- 2.42.0 (2014-05-23)
897
- ===================
898
-
899
- Firefox:
900
- * Fix for extensions whose install.rdf uses an attribute for em:id (#5978)
901
- * Support for Firefox 29 Native Events
902
-
903
- 2.41.0 (2014-03-28)
904
- ===================
905
-
906
- * Removed dead browser visibility methods.
907
- * Firefox:
908
- * Native events support for Firefox 28 (removed support for 26)
909
-
910
- 2.40.0 (2014-02-19)
911
- ===================
912
-
913
- * Fix bug where FileReaper would not reap files added in a child process
914
- * Document AbstractEventListener (#5994)
915
- * Safari:
916
- * Add Safari::Options + clean up Safari extension handling (#6382)
917
- * Add support for user extensions (#6815)
918
- * Firefox:
919
- * Support native events for Firefox 27 + removed native event support for Firefox 25
920
-
921
- 2.39.0 (2013-12-17)
922
- ===================
923
-
924
- * Firefox: Native events support for Firefox 26.
925
- * Add deprecation warning to the Android driver.
926
- * Make sure selenium/client doesn't require Rake (#6709)
927
-
928
- 2.38.0 (2013-12-05)
929
- ===================
930
-
931
- * Enforce required Ruby version in gemspec, not just transitively through rubyzip.
932
- * Expose the logging API (beta API, subject to change) in the Ruby client: driver.manage.logs #=> Selenium::WebDriver::Logs
933
- * Update to support native events for Firefox 25
934
-
935
-
936
- 2.37.0 (2013-10-18)
937
- ===================
938
-
939
- * As of this version, selenium-webdriver no longer supports Ruby < 1.9.2
940
- * Depend on rubyzip ~> 1.0.0
941
- * Added SOCKS proxy support
942
- * Fixed support for SVG documents in the atoms.
943
- * Fixed computing an element's container dimensions to account for the scrollbar size when scrolling
944
- * Added Capabilities.htmlunitwithjs
945
-
946
- Chrome:
947
- * Pass through the prefs option as a Chrome capability (#5929).
948
- Firefox:
949
- * Updated Firefox native event components to support Firefox 24.
950
- * New elementScrollBehavior capability.
951
- * Fixed getLocation to work on scrolled pages.
952
- * Fixed autoscrolling for elements located in frames.
953
- * Fixed drag-n-drop for elements in frames with native events
954
- IE:
955
- * Use native events by default, also for remote IE (#4695)
956
- Safari:
957
- * Enable screenshots and input devices in the client.
958
-
959
- 2.35.1 (2013-08-26)
960
- ===================
961
-
962
- * Depend on rubyzip < 1.0.0
963
-
964
- 2.35.0 (2013-08-14)
965
- ===================
966
-
967
- Firefox:
968
- * Updated Firefox native event components to support Firefox 23.
969
-
970
- 2.34.0 (2013-08-06)
971
- ===================
972
-
973
- Remote:
974
- * Add `Driver#remote_status` (remote driver only) (#5669)
975
- Firefox:
976
- * Updated Firefox native event components to support Firefox 22.
977
- iPhone:
978
- * The driver is now deprecated (see http://appium.io/ or http://ios-driver.github.io/ios-driver/ for a replacement)
979
- Various:
980
- * Updated our copy of the Closure compiler and library to the most
981
- recent versions.
982
- * Updated the atoms library, including support for MS pointer events
983
- and refinements to element visibility tests.
984
- * Update synthesized mouse implementation. Mouse moves are
985
- implemented using nsIDOMWindowUtils.
986
- * Added support for the HTML5 "hidden" attribute. If an element, or
987
- ancestor, has hidden attribute make, it is not shown.
988
-
989
- 2.33.0 (2013-05-26)
990
- ===================
991
-
992
- Remote:
993
- * Support rotating devices, such as iPhone & iPad in simulator and Android browser in emulator
994
- * Support for interacting with touch screen devices, such as iPhone & iPad in simulator and Android browser in emulator
995
- * Improve error messages for invalid wire protocol responses
996
- Chrome:
997
- * Accept :service_log_path for Chrome. (#3475)
998
- IE:
999
- * IE >=9 versions triggerMouseEvent like other browsers (#2218).
1000
- Various:
1001
- * Element#text ignores elements in <head>
1002
-
1003
-
1004
- 2.32.1 (2013-04-11)
1005
- ===================
1006
-
1007
- Safari:
1008
- * Fix typo when encoding the Safari server redirect URL (#5472)
1009
-
1010
- 2.32.0 (2013-04-09)
1011
- ===================
1012
-
1013
- Safari:
1014
- * The Safari extension is now packaged with the gem and automatically installed (#5322)
1015
- * Improved detection of the binary location on 64-bit windows (#5273)
1016
- Opera:
1017
- * Allow passing :desired_capabailities (#5279)
1018
- Firefox:
1019
- * This release supports versions 10esr, 17esr, 19, 20.
1020
- * Improved SVG support
1021
- Other:
1022
- * Allow #click_and_hold without target (#5410).
1023
- * Remove assumptions about returned capabilities (for ios-driver)
1024
-
1025
- 2.31.0 (2013-03-02)
1026
- ===================
1027
-
1028
- Remote:
1029
- * Expose session_id on the remote driver when used directly (#5240).
1030
- Firefox:
1031
- * Native events in Firefox 19
1032
- Opera:
1033
- * Treat UNSPECIFIED proxy type as a nil proxy (#5081).
1034
- Other:
1035
- * Add ability to pass :desired_capabilities to all the Ruby drivers, not just for :remote.
1036
- Direct arguments take presendence. (#5078, see also https://github.com/SeleniumHQ/selenium/pull/8, https://github.com/SeleniumHQ/selenium/pull/11)
1037
-
1038
- 2.30.0 (2013-02-20)
1039
- ===================
1040
-
1041
- Firefox:
1042
- * Firefox 19 support (for synthesized events)
1043
- Remote:
1044
- * Pass along firefox_binary correctly (#5152)
1045
- Safari:
1046
- * Don't overwrite Driver#browser
1047
- Other
1048
- * Alert#text should raise on closed alert.
1049
-
1050
- 2.29.0 (2013-01-21)
1051
- ===================
1052
-
1053
- Firefox:
1054
- * Firefox 18 support (for native events).
1055
- IE:
1056
- * New 'requireWindowFocus' desired capability.
1057
- * IE view port calculation take scroll bars into account (#3602)
1058
- Safari:
1059
- * Replace 'libwebsocket' with 'websocket' gem. This should ensure
1060
- support with recent Safari.
1061
- Other:
1062
- * Fix Cygwin issue in PortProber/Firefox::Bianry (#4963)
1063
-
1064
- 2.27.2 (2012-12-11)
1065
- ===================
1066
-
1067
- Firefox:
1068
- * Fix for native events in v17 (packaging mistake)
1069
-
1070
- 2.27.1 (2012-12-07)
1071
- ===================
1072
-
1073
- Firefox:
1074
- * Fix "g[b] is not an object" error when passing null to execute_script.
1075
-
1076
- 2.27.0 (2012-12-06)
1077
- ===================
1078
-
1079
- Firefox:
1080
- * Support for Firefox 17.
1081
- IE:
1082
- * Path to the server executable can be specified (S::W::IE.path=)
1083
- Other:
1084
- * Added :phantomjs driver
1085
-
1086
- 2.26.0 (2012-11-02)
1087
- ===================
1088
-
1089
- Firefox:
1090
- * Added support for native events for Firefox 15 and 16.
1091
- * Modified FirefoxDriver to use atoms to switch between frames.
1092
- * FIXED: 4309: 'Could not convert Native argument arg 0' error with Firefox.
1093
- * FIXED: 4375: Executing javascript hangs Firefox.
1094
- * FIXED: 4165: WebDriver fails on a machine with no IP address.
1095
- Safari:
1096
- * Fixed SafariDriver to allow calling .quit() consecutively without error.
1097
- * FIXED: 4676: Unable to fire javascript events into SVG's.
1098
- * FIXED: 3969: SafariDriver should auto-dismiss alerts.
1099
- IE:
1100
- * FIXED: 4535: Hover still does not work perfectly in IE.
1101
- * FIXED: 4593: Alert.accept() Cancels the Resend Alert/Dialog Box.
1102
-
1103
- 2.25.0 (2012-07-19)
1104
- ===================
1105
-
1106
- * Respect no_proxy / NO_PROXY env vars (#4007).
1107
- * Improve error message if a configured proxy refuses the connection.
1108
- * Ignored exception can be configured on the Wait class.
1109
- * Add Selenium::WebDriver::Support::Color class.
1110
- * Ignore Errno::ENETUNREACH when trying to detect our local IP (#4165).
1111
- * Ignore Errno::EADDRNOTAVAIL in PortProber (#3987).
1112
- * Firefox:
1113
- * Enumerate through client rects until finding one with non-zero dimensions when clicking.
1114
- * Updated supported versions of Firefox to 17.
1115
- * Allow windows to be resized from a frame (#3897).
1116
- * Fix an issue where a call to submit could hang the driver.
1117
- * IE:
1118
- * Ability to configure logging through the :log_file and :log_level options.
1119
- * Increasing stability of file upload dialog handling (#3858)
1120
- * Better handling of overflow edge cases when determining element visibility.
1121
-
1122
- 2.24.0 (2012-06-19)
1123
- ===================
1124
-
1125
- * bot.dom.getVisibleText does not properly handle display:run-in or display:table (#1584).
1126
- * CSS selectors now support compound selectors.
1127
- * IE:
1128
- * Failure to click on an element in the IE Driver will yield a more meaningful error.
1129
- * Crash on IE8 when S_FALSE is returned from get_Document (#4064)
1130
- * DLLs are no longer bundled with the gem, users must use the standalone server from now on.
1131
- * Firefox:
1132
- * Support for Firefox 13
1133
- * Ability to pass :proxy directly as Firefox option (no Profile needed).
1134
-
1135
- 2.22.2 (2012-06-05)
1136
- ===================
1137
-
1138
- * Improve method for determining the local IP (#3987).
1139
-
1140
- 2.22.1 (2012-06-01)
1141
- ===================
1142
-
1143
- * Fix for 1.8.7 behaviour of Socket.getaddrinfo.
1144
- * Automatically reap Firefox profile on exit, not just in #quit.
1145
-
1146
- 2.22.0 (2012-05-29)
1147
- ===================
1148
-
1149
- * Fix conflict with ActiveSupport's Object#load (#3819)
1150
- * IE:
1151
- * Default to standalone server executable, fall back to bundled DLLs.
1152
- * The 'nativeEvents' capabilitiy is exposed as :native_events in the Ruby client (mode still experimental).
1153
- * Firefox:
1154
- * Native events for Firefox 12.
1155
- * Native events retained for Firefox 3.x, 10 and 11.
1156
- * Fix for typing in Firefox 12
1157
- * Fix for typing on XHTML pages (#3647)
1158
- * Fix for maximizing windows when switched to a frame (#3758)
1159
- * Handle alerts from nested iframes (#3825)
1160
- * Remote:
1161
- * Honor HTTP_PROXY env vars (#3838).
1162
- * Element#attribute returns nil if a boolean attribute is not present.
1163
- * NoSuchWindowError will be thrown if the currently selected window is closed and another command is sent.
1164
- * Safari:
1165
- * support for frame switching, snapshot taking, execute script
1166
- * message protocol changed, not backwards compatible with 2.21.
1167
- * Style attributes are no longer lower-cased by default (#1089).
1168
- * Make sure the Ruby client kills Firefox even when the RPC fails.
1169
- * Make sure the Ruby client checks all network interfaces when finding free ports.
1170
-
1171
-
1172
- 2.21.2 (2012-04-18)
1173
- ===================
1174
-
1175
- * Check MultiJson.respond_to?, depend on ~> 1.0
1176
-
1177
- 2.21.1 (2012-04-16)
1178
- ===================
1179
-
1180
- * Set multi_json dependency to < 1.3 to avoid deprecation warnings.
1181
-
1182
- 2.21.0 (2012-04-11)
1183
- ===================
1184
-
1185
- * Add Selenium::WebDriver::Window#maximize (#3489)
1186
- * Safari:
1187
- * New driver! See https://github.com/SeleniumHQ/selenium/wiki/SafariDriver.
1188
- * Firefox:
1189
- * Significant stability improvements.
1190
- * Native events support for Firefox 11
1191
- * Dropped native events support for Firefox 4-9
1192
- * Window maximize implementation.
1193
- * IE:
1194
- * Ignore invisible dialogs (#3360).
1195
- * Window maximize implementation.
1196
- * Android:
1197
- * Accept SSL certificates (#3504).
1198
-
1199
- 2.20.0 (2012-02-28)
1200
- ===================
1201
-
1202
- * Loosen the multi_json and ffi dependencies (#3446)
1203
- * Firefox:
1204
- * Introduce a timeout for page loads. This needs to be used in
1205
- conjunction with the unstable page load detection. Exposed as
1206
- Timeouts#page_load=
1207
- * Scroll containing elements, not just windows (#3391).
1208
- * Element#{style => css_value}, with an alias for backwards compatibility.
1209
- * Atoms:
1210
- * Submit a form when the enter button is pressed in its input
1211
- element.
1212
- * Add a "mouse pixel scroll" event to the atoms events module.
1213
- * Adding a public "mouseOver" action and a little internal
1214
- refactoring around the mouseOver functionality.
1215
- * Selenium::WebDriver::Wait: polling interval reduced from 0.5 to 0.2 seconds.
1216
-
1217
- 2.19.0 (2012-02-08)
1218
- ===================
1219
-
1220
- * RC client supports server-side WebDriver-backed Selenium.
1221
- * Touch APIs implemented in the Ruby client (Android only)
1222
- * Firefox:
1223
- * Fix deserialization of user.js in Firefox::Profile
1224
- * Native events implemented for Firefox 10.
1225
- * Renamed the experimental "fast" page loaded strategy "unstable"
1226
- and disable queuing of commands when it's enabled.
1227
- * Disabled native events for Firefox 8 as it's deprecated by Mozilla.
1228
- * Fix for exceptions thrown when an alert occurs during script execution.
1229
- * Chrome:
1230
- * New download link for the server component:
1231
- http://code.google.com/p/chromedriver/downloads/list
1232
-
1233
- 2.18.0 (2012-01-27)
1234
- ===================
1235
-
1236
- * Fix for getting value attribute of option elements. (#3169)
1237
- * Firefox and IE:
1238
- * Raise UnhandledAlertError if an alert is present during an operation. The unhandled alert is also dismissed to mitigate repeat exceptions.
1239
- * Firefox:
1240
- * Better handling of getText invocations on SVG elements.
1241
- * Fix for Element#click in Firefox 4. (#3253)
1242
- * Fixed bug when deserializing user.js in Firefox::Profile.
1243
- * Default profile preferences now read from shared JSON blob.
1244
- * Android and iPhone:
1245
- * Client support for the geolocation API (see Selenium::WebDriver::DriverExtensions::HasLocation)
1246
- * Client support for the web storage API (see Selenium::WebDriver::DriverExtensions::HasWebStorage)
1247
- * iPhone:
1248
- * Server now supports frame switching (for frames in the same domain).
1249
-
1250
- 2.17.0 (2012-01-16)
1251
- ===================
1252
-
1253
- * Firefox:
1254
- * Fix excessive unwrapping when switching windows.
1255
- * Set toolkit.telemetry.{enabled,rejected} in the default Firefox profile.
1256
- * Support up to version 12 with synthesized events.
1257
- * Fixed issues launching Firefox 9 due to modal dialog (#3154, #3144)
1258
- * Chrome:
1259
- * Now accepts a :url option, pointing to an already running Chrome server.
1260
- * Now accepts a :proxy option (i.e. Selenium::WebDriver::Proxy instance).
1261
- * iPhone:
1262
- * iWebDriver will auto-play HTML5 video (#3152)
1263
- * Element#attribute("value") falls back to the text of option tags, if no value attribute is specified (#3169)
1264
-
1265
- 2.16.0 (2012-01-04)
1266
- ===================
1267
-
1268
- * Firefox:
1269
- * Native events support for Firefox 9
1270
- * Allow apps to use offline storage by default
1271
- * Fix excessive unwrapping when executing mouseMove
1272
- * Click in the middle, rather than the top-left of elements (#3034, #2700)
1273
- * IE:
1274
- * Raise StaleElementReferenceError when interacting with elements outside the currently focused frame
1275
- * Handle frames and iframes in showModalDialog windows
1276
- * Chrome:
1277
- * Improve client handling of invalid error responses
1278
- * iPhone:
1279
- * Updated to latest CocoaHTTPServer
1280
- * Remote:
1281
- * Improve performance of Element#== by only making an RPC when necessary.
1282
- * Disallow caching of GET requests
1283
- * Various:
1284
- * Raise ArgumentError instead of UnsupportedOperationError on invalid modifier key
1285
- * Improve docs for Server, ActionBuilder and Window
1286
- * Update to latest Sizzle (used for :css selectors in older browsers)
1287
-
1288
- 2.15.0 (2011-12-08)
1289
- ===================
1290
-
1291
- * Firefox:
1292
- * Now supports up to Firefox 11 (for syntesized events)
1293
- * Implicit waits now change how long we wait for alerts. This
1294
- functionality will change in 2.16
1295
- * Fix scrolling issue (#2700)
1296
- * IE:
1297
- * Fix issue with getWindowHandles() and showModalDialog() (#1828)
1298
- * Add support for the window sizing and positioning API
1299
- * Make Platform.bitsize use the correct constant from FFI
1300
- * WebDriver internals:
1301
- * Atoms code contribution from Google
1302
- * Closure updated
1303
-
1304
-
1305
- 2.14.0 (2011-11-29)
1306
- ===================
1307
-
1308
- * Add Selenium::WebDriver::Support::Select class to ease working with select lists.
1309
- * Add Capabilities.ipad and Capabilities.iphone (#2895)
1310
- * Replace json_pure dependency with multi_json. (#2901)
1311
- * Don't leave sockets hanging in SYN_SENT state while polling.
1312
- * Allow selecting option elements even if the enclosing select has zero opacity.
1313
- * Exception renames (old names aliased and will still work in rescues):
1314
- * ObsoleteElementError -> StaleElementReferenceError
1315
- * UnhandledError -> UnknownError
1316
- * UnexpectedJavascriptError -> JavascriptError
1317
- * NoAlertOpenError -> NoAlertPresentError
1318
- * ElementNotDisplayedError -> ElementNotVisibleError
1319
- * Firefox:
1320
- * Fixed issue with scrolling on small viewports with native events.
1321
- * Fix CSS selector support in Firefox 3.0
1322
- * IE:
1323
- * Implement the window control API
1324
-
1325
- 2.13.0 (2011-11-18)
1326
- ===================
1327
-
1328
- * Firefox:
1329
- * Recovering from null window references in the Firefox driver (#1438)
1330
-
1331
- 2.12.2 (2011-11-13)
1332
- ===================
1333
-
1334
- * Firefox
1335
- * Fix issue where Firefox 8 would throw permission errors after document.domain was modified (#2863).
1336
- * Force window to the foreground on launch (see https://bugzilla.mozilla.org/show_bug.cgi?id=566671)
1337
-
1338
- 2.12.1 (2011-11-11)
1339
- ===================
1340
-
1341
- * Fix regression when typing into contenteditable elements.
1342
-
1343
- 2.12.0 (2011-11-10)
1344
- ===================
1345
-
1346
- * Loosened the ffi dependency now that Windows support is back (#2755).
1347
- * Fix shutdown issues when using net-http-persistent against remote servers.
1348
- * Added beta window control API (see Selenium::WebDriver::Options#window).
1349
- * Firefox
1350
- * Support for Firefox 8.
1351
- * Better reporting of page size when attempting to move out of bounds.
1352
- * Beta implementation of window control.
1353
-
1354
- 2.11.0
1355
- ======
1356
-
1357
- (release skipped since it included only server-side changes)
1358
-
1359
- 2.10.0 (2011-10-27)
1360
- ===================
1361
-
1362
- * Improve native keyboard emulation on Windows.
1363
- * Allow commas in CSS selectors (#2301)
1364
- * Firefox:
1365
- * Fix intermittent error when finding elements by XPath (#2099)
1366
- * Fix detection of maximum page size (#2700)
1367
- * Avoid extension selection dialog (extensions.autoDisableScopes)
1368
- * Fix invalid wire responses from the synthetic mouse (#2695)
1369
- * Don't scroll unnecessarily (#1771).
1370
- * IE:
1371
- * Improve handling of #clear on disabled or readonly elements.
1372
-
1373
- 2.9.1 (2011-10-24)
1374
- ==================
1375
-
1376
- * Workaround for invalid error responses (#2695).
1377
-
1378
- 2.9.0 (2011-10-21)
1379
- ==================
1380
-
1381
- * Support file uploads to the remote server (see Selenium::WebDriver::DriverExtensions::UploadsFiles)
1382
- * New exception: Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
1383
- * Implemented Chrome::Profile#add_extension
1384
- * Better respect for preformatted text in Element#text
1385
- * Reduced scrolling during tests for IE and Firefox.
1386
- * Firefox:
1387
- * Support for experimental page load detection.
1388
- * IE:
1389
- * Better detection of where to click on links (#2675).
1390
- * Improve handling of modal dialogs (showModalDialog).
1391
-
1392
- 2.8.0 (2011-10-06)
1393
- ==================
1394
-
1395
- * Firefox
1396
- - Avoid telemetry prompt on Firefox 7
1397
- - Allow parallel execution with native events on Linux (#1326)
1398
- - Added native events support for Firefox 7 on Linux/Windows
1399
- - Improve search for libX11 for native events on Linux (#384)
1400
- - Fix double click with native events
1401
- * Chrome
1402
- - Fail fast if the chromedriver server is not executable.
1403
- * IE
1404
- - Fix find_element bug (#2563)
1405
-
1406
-
1407
- 2.7.0 (2011-09-23)
1408
- ==================
1409
-
1410
- * Firefox
1411
- - no longer types in the URL bar (#2487)
1412
- - fixed native events click() issue when element is out of view
1413
- - double click + get no longer hangs firefox (#2456)
1414
- - make sure escaped backslashes are properly escaped when serializing a Firefox profile (#2485)
1415
- * IE
1416
- - fix event firing issue (#2516)
1417
- * Opera
1418
- - don't start the remote service if the driver is passed bad arguments
1419
-
1420
- 2.6.0 (2011-09-13)
1421
- ==================
1422
-
1423
- * Rescue and retry on Errno::EADDRINUSE to work around ephemeral ports issue on Windows.
1424
- * Use correct default URL for the Android driver.
1425
- * Profile zipping now follows symlinks (#2416).
1426
- * Firefox
1427
- - Disable malware check
1428
- - Various #click improvements
1429
- - Don't scroll if element is already in view
1430
- * IE:
1431
- - improve scrolling to elements with 'overflow: scroll'
1432
- - properly trigger jQuery change events (#2207)
1433
- - improve handling of nested modal dialogs
1434
- * Opera:
1435
- - capabilities exposed as options to Selenium::WebDriver.for
1436
- * Various iPhone driver fixes (e.g. #1396)
1437
-
1438
- 2.5.0 (2011-08-23)
1439
- ==================
1440
-
1441
- * IE: support for double click and fix for clicks close to edge of window.
1442
- * Fix for clicking links that overflow into multiple lines (#1020).
1443
- * Correct initial cursor position when typing into text fields with Firefox 6.
1444
- * Native events support for Firefox 6 on Windows and Linux.
1445
- * Fix bug in Android::Bridge when no :http_client option was passed.
1446
- * Set chrome.detach to tell chromedriver to leave browser running on exit.
1447
-
1448
- 2.4.0 (2011-08-11)
1449
- ==================
1450
-
1451
- * Firefox 6 support.
1452
- * Raise in switch_to.alert when no alert is present.
1453
- * Improved handling of non-breaking spaces for Element#text.
1454
-
1455
- 2.3.2 (2011-08-01)
1456
- ==================
1457
-
1458
- * Re-releasing since 2.3.1 was a buggy build.
1459
-
1460
- 2.3.1 (2011-08-01)
1461
- ==================
1462
-
1463
- * Fix bug where Firefox would hang if Firefox::Profile#log_file= was set.
1464
-
1465
- 2.3.0 (2011-08-01)
1466
- ==================
1467
-
1468
- * Add Selenium::WebDriver::Chrome::Profile
1469
- * Better detection of clickable areas in Firefox.
1470
- * Merge of Google-contributed code into the underlying Atoms.
1471
- * IE click issue fixed (#1650)
1472
- * No longer raise in Element#inspect if the element is obsolete.
1473
-
1474
-
1475
- 2.2.0 (2011-07-26)
1476
- ==================
1477
-
1478
- * Add ability to listen for WebDriver events
1479
- * Fix Android/iPhone bridges to work similar to others (https://github.com/jnicklas/capybara/issues/425)
1480
- * Various atoms fixes
1481
- * Element equality now works properly with the remote server (#251).
1482
-
1483
- 2.1.0 (2011-07-18)
1484
- ==================
1485
-
1486
- * Various improvments to the IE driver (#2049, #1870)
1487
- * Atoms fixes (#1776, #1972).
1488
- * Synthetic mouse clicks do not propagate errors in onmouseover.
1489
-
1490
- 2.0.1 (2011-07-11)
1491
- ==================
1492
-
1493
- * Make sure at_exit hooks aren't inherited by child processes.
1494
-
1495
- 2.0.0 (2011-07-08)
1496
- ==================
1497
-
1498
- * Remove deprecated methods Element#{toggle,select,drag_and_drop_*,value}.
1499
- * Add ability to pass :verbose, :native_events to the Chrome driver.
1500
- * Synthetic mouse implementation for Firefox - improves drag and drop support platforms without native events.
1501
- * Added Selenium::WebDriver::Opera (requires the remote server).
1502
- * Fix for locating Firefox on 64-bit Windows when missing from the registry.
1503
- * Fix native events on Firefox 4, 5.
1504
-
1505
- 0.2.2 (2011-06-22)
1506
- ==================
1507
-
1508
- * Deprecate Element#{toggle,select,drag_and_drop_*}
1509
- * Chrome.path= now sets the path to Chrome, Chrome.driver_path= the path to the chromedriver server.
1510
- * Fix argument names in Mouse#move_to and Mouse#move_by.
1511
- * Support Firefox 5
1512
- * Chrome and Firefox drivers now includes the HasInputDevices module.
1513
- * Selenium::Rake::ServerTask now works with Rake 0.9.
1514
-
1515
- 0.2.1 (2011-06-01)
1516
- ==================
1517
-
1518
- * Allow passing custom command line switches to Chrome (requires today's release of the Chrome server)
1519
- * Avoid mutating arguments to find_element (issue #1273).
1520
- * Avoid conflicts when SUT modifies Array.prototype
1521
- * Allow setting arbitrary capabilities by adding Capabilities#[]=
1522
- * The Chrome driver is extended with TakesScreenshot.
1523
- * IE driver detects bad protected mode settings.
1524
- * Firefox driver no longer considers opacity when determining visibility.
1525
- * Fix for ActionBuilder#move_by.
1526
- * Treat Errno::EBADF as an indication that we failed to grab the socket lock (issue #1611).
1527
- * Ensure Firefox launches don't hang on some Ruby versions (by improving Selenium::WebDriver::SocketPoller).
1528
- * Various internal driver improvements.
1529
-
1530
- 0.2.0 (2011-04-22)
1531
- ==================
1532
-
1533
- * Update Ruby bindings to use the rewritten Chrome driver (see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver).
1534
- * Add deprecation warning for WebDriver::Element#value (use Element#attribute("value") instead).
1535
- * Change the default timeout for Wait instances to 5 seconds.
1536
- * Fix bug where locators would fail if Object.prototype had been modified.
1537
- * Various IE fixes
1538
- - Issues: #698, #1444
1539
- - Improved handling of showModalDialog()
1540
- - Full-size screenshots
1541
- * Allow users to override the dom.max_script_run_time preference in Firefox.
1542
- * Removed DesiredCapabilities.safari, which was never supported anyway.
1543
- * Add DesiredCapabilities.opera, which will be supported in the Remote server if OperaDriver is on the classpath.
1544
- * Print warnings for deprecated constants in the RC client:
1545
- - Selenium::SeleniumDriver => Selenium::Client::Driver
1546
- - Selenium::CommandError => Selenium::Client::CommandError
1547
- * Removed top-level constants:
1548
- - SeleniumHelper (available as Selenium::Client::SeleniumHelper)
1549
- - SeleniumCommandError (available as Selenium::Client::CommandError)
1550
-
1551
- 0.1.4 (2011-03-21)
1552
- ==================
1553
-
1554
- * Support for Firefox 4.
1555
- * Search PATH for Firefox / Chrome on OS X as well.
1556
- * Bump dependencies for ffi and childprocess (#1356).
1557
- * Find module renamed to SearchContext
1558
- * Deprecated methods Driver#hover and Options#{speed,speed=} removed.
1559
- * Improve IE driver stability, IE9 support
1560
- * Added basic ActionBuilder and HasInputDevices#action. Not applicable for all browsers.
1561
- * Added Driver#execute_async_script
1562
- * Some WebDriver exception classes have been renamed to match its Java equivalents:
1563
- ElementNotEnabledError -> InvalidElementStateError
1564
- UnknownScriptResultError -> XpathLookupError
1565
- * Fix bug where Element#disabled? would alternate between true/false (r11438)
1566
-
1567
- 0.1.3 (2011-02-14)
1568
- ==================
1569
-
1570
- * Several crashing bugs fixed in the IE driver.
1571
- * Alert API available through the remote driver.
1572
- * Driver#refresh fixed in the IE driver.
1573
- * Fixed paths for IE DLLs on Cygwin.
1574
- * Screenshot support in the IE and Remote drivers.
1575
- * Fix #1152 by avoiding IPv6 loopback.
1576
- * Added Mouse and Keyboard classes, accessible as Driver#{mouse,keyboard}. Considered experimental (IE + HtmlUnit only at the moment).
1577
- * Automation atoms now used extensively in the IE driver.
1578
- * Firefox::Bridge is now easier to extend (i.e. with a custom launcher).
1579
- * Add S::W::Remote::Http::Persistent (currently only usable with the remote server).
1580
- * IE driver passes along options like the other remote drivers, enabling user-specified HTTP clients.
1581
- * :firefox_profile added to Remote::Capabilities, enabling passing a profile to remote Firefoxes.
1582
- * IE driver now supports launching multiple instances of the browser.
1583
- * Remove some Ruby warnings (uninitialized ivars, URI.escape).
1584
-
1585
-
1586
- 0.1.2 (2010-12-22)
1587
- ==================
1588
-
1589
- * Changed frame switching behaviour (http://groups.google.com/group/selenium-developers/browse_thread/thread/8dc7938c35bb3968)
1590
- * IE driver rewrite landed.
1591
- * Initial support for alerts/prompts (in Firefox).
1592
- * Cygwin support.
1593
- * Driver#execute_script now properly wraps elements inside Hashes.
1594
- * Various fixes for Firefox 4.
1595
-
1596
- 0.1.1 (2010-11-29)
1597
- ==================
1598
-
1599
- * Fix for Chrome.path=
1600
- * Remote drivers always add Content-Length for POST requests (thanks joshuachisholm)
1601
- * Fix for JS execution bug in the IE driver
1602
- * Add ability to specify a proxy on the Http::Default client.
1603
- * The remote drivers' :http_client argument now take a configured instance.
1604
-
1605
- 0.1.0 (2010-11-11)
1606
- ===================
1607
-
1608
- * selenium-client code (Se1/RC client) is now included in the gem (require "selenium/client").
1609
- * Add Selenium::WebDriver::Proxy, used to configure proxies for Firefox::Profile and the remote driver.
1610
- * Tweaked Firefox profile preferences, improve logging, disabled crash reporter.
1611
- * Reap Firefox profiles on close, not just on exit.
1612
- * Add selenium/rake/server_task and selenium/server which wraps the Selenium server jar.
1613
- * Various Firefox driver improvements (GC race conditions ++).
1614
- * IE::Bridge#initialize now takes an options hash like the other bridges.
1615
- * Added basic iPhone and Android driver classes.
1616
- * Firefox driver now works on FreeBSD.
1617
-
1618
-
1619
- 0.0.29 (2010-10-09)
1620
- ===================
1621
-
1622
- * Element#find_element with :xpath follows the XPath spec (i.e. results are not limited to the receiver's subtree).
1623
- * Element#attribute(attribute) now returns "false" instead of nil.
1624
- * Firefox::Profile instances can now be reused for multiple drivers.
1625
- * Redirect Firefox console logs to a file with Firefox::Profile.log_file=
1626
- * Added a simple Wait class, based on WebDriverWait in Java.
1627
- * Search PATH for Firefox executable on Windows also.
1628
- * Added Capabilities.android
1629
- * Fix saving of screenshots on Windows and Ruby 1.9 (using "wb" mode string)
1630
- * CSS selector support in the remote driver
1631
- * CSS selector support for IE (using querySelector when available, Sizzle elsewhere)
1632
- * CSS selector support for older versions of Firefox (through Sizzle)
1633
- * Cookie expiration dates are now handled correctly (#730)
1634
- * Make Driver#bridge private, since this seems to be a common cause of confusion.
1635
- * Add {Element,Remote::Capabilities}#as_json for Rails 3 (http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/)
1636
- * User can configure path to exectuables with {Firefox,Chrome}.path = "/some/path"
1637
- * Added "chromium" as a possible name for the Chrome binary (#769)
1638
- * Correctly set the HTTP client timeout (#768)
1639
- * switch_to.window with block now handles exceptions and non-local returns.
1640
- * switch_to.window with block returns the result of the block.
1641
- * Extracted handling of child processes to a separate gem: http://github.com/jarib/childprocess
1642
-
1643
-
1644
- 0.0.28 (2010-08-23)
1645
- ===================
1646
-
1647
- * Fix behaviour of Element#==, Element#eql? and Element#hash (#hash still has issues on IE / remote).
1648
- * Include remote server backtrace in raised errors (if available).
1649
- * Chrome: Untrusted certificate support.
1650
- * IE: Fix NoMethodError when getElementAttribute returns nil.
1651
- * Driver#[] shorthand can take a locator hash, not just an id string.
1652
-
1653
- 0.0.27 (2010-07-22)
1654
- ===================
1655
-
1656
- * Fixes for Element#attribute on IE / Firefox
1657
-
1658
- 0.0.26 (2010-07-19)
1659
- ===================
1660
-
1661
- * Work around Curb issue: http://github.com/taf2/curb/issues/issue/40
1662
-
1663
- 0.0.25 (2010-07-19)
1664
- ===================
1665
-
1666
- * Prevent Firefox from launching in offline mode (issue #587).
1667
- * Add ability to set Firefox' binary path through Selenium::WebDriver::Firefox::Binary.path=
1668
- * Add ability to install Firefox XPIs through Profile#add_extension.
1669
- * Better packaging/building of Firefox/Chrome extensions, which adds rubyzip as a dependency.
1670
- * Remote client supports HTTPS (issue #613 - thanks kkaempf).
1671
- * Fix error message for TimeOutError in the IE driver (issue #602)
1672
- * Add ability to use Chrome's default profile.
1673
- * Fix for frame behaviour in Chrome (issue #273).
1674
- * Standard gem directory structure (issue #475).
1675
-
1676
- 0.0.24 (2010-06-17)
1677
- ==================
1678
-
1679
- * Fix issues with quitting Firefox/Chrome on Windows + MRI.
1680
-
1681
-
1682
- 0.0.23 (2010-06-15)
1683
- ===================
1684
-
1685
- * Improved the HTTP clients:
1686
- - hopefully fix some occasional socket errors on Windows
1687
- - rescue error on driver.close() with curb
1688
-
1689
- 0.0.22 (2010-06-11)
1690
- ===================
1691
-
1692
- * Bugfix: Workaround for http://github.com/taf2/curb/issues/issue/33 - curb would sometimes use DELETE for GET requests.
1693
- * Minor doc fix
1694
- * Add ability to set timeout for HTTP clients
1695
-
1696
- 0.0.21 (2010-06-11)
1697
- ===================
1698
-
1699
- * User can specify :http_client for the Firefox driver.
1700
- * Refactor HTTP client code
1701
- * Add Remote::Http::Curb as an alternative to the default (net/http) client.
1702
-
1703
-
1704
- 0.0.20 (2010-06-03)
1705
- ===================
1706
-
1707
- * Fix bug where Firefox would hang on quit().
1708
-
1709
- 0.0.19 (2010-05-31)
1710
- ===================
1711
-
1712
- * Add a max redirect check to the remote driver
1713
- * Add Firefox::Profile#assume_untrusted_certificate_issuer=
1714
- * Add implicit waits (Selenium::WebDriver::Timeouts)
1715
- * at_exit hook to clean temporary profiles
1716
- * Fix for Errno::ECONNABORTED errors on Windows
1717
- * Fix issue where Firefox::Profile#secure_ssl= would have no effect
1718
- * Fix issue where locating elements by :css would fail in the Chrome driver.
1719
- * IE driver now works on 64-bit rubies.