selenium-webdriver 3.4.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. data/CHANGES +35 -1
  2. data/Gemfile.lock +54 -0
  3. data/lib/selenium/webdriver.rb +8 -10
  4. data/lib/selenium/webdriver/chrome.rb +2 -1
  5. data/lib/selenium/webdriver/chrome/{bridge.rb → driver.rb} +47 -32
  6. data/lib/selenium/webdriver/chrome/options.rb +170 -0
  7. data/lib/selenium/webdriver/common/driver.rb +20 -39
  8. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +5 -0
  9. data/lib/selenium/webdriver/common/element.rb +5 -1
  10. data/lib/selenium/webdriver/common/logger.rb +10 -0
  11. data/lib/selenium/webdriver/common/w3c_error.rb +2 -2
  12. data/lib/selenium/webdriver/edge.rb +2 -1
  13. data/lib/selenium/webdriver/edge/bridge.rb +2 -91
  14. data/lib/selenium/webdriver/edge/driver.rb +80 -0
  15. data/lib/selenium/webdriver/firefox.rb +6 -3
  16. data/lib/selenium/webdriver/firefox/driver.rb +50 -0
  17. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  18. data/lib/selenium/webdriver/firefox/legacy/driver.rb +81 -0
  19. data/lib/selenium/webdriver/firefox/marionette/driver.rb +101 -0
  20. data/lib/selenium/webdriver/firefox/options.rb +139 -0
  21. data/lib/selenium/webdriver/ie.rb +1 -1
  22. data/lib/selenium/webdriver/ie/{bridge.rb → driver.rb} +13 -13
  23. data/lib/selenium/webdriver/phantomjs.rb +1 -1
  24. data/lib/selenium/webdriver/phantomjs/{bridge.rb → driver.rb} +10 -13
  25. data/lib/selenium/webdriver/remote.rb +11 -13
  26. data/lib/selenium/webdriver/remote/bridge.rb +87 -586
  27. data/lib/selenium/webdriver/remote/capabilities.rb +3 -1
  28. data/lib/selenium/webdriver/remote/driver.rb +44 -0
  29. data/lib/selenium/webdriver/remote/http/default.rb +1 -1
  30. data/lib/selenium/webdriver/remote/oss/bridge.rb +586 -0
  31. data/lib/selenium/webdriver/remote/{commands.rb → oss/commands.rb} +9 -5
  32. data/lib/selenium/webdriver/remote/oss/driver.rb +44 -0
  33. data/lib/selenium/webdriver/remote/w3c/bridge.rb +573 -0
  34. data/lib/selenium/webdriver/remote/w3c/capabilities.rb +266 -0
  35. data/lib/selenium/webdriver/remote/{w3c_commands.rb → w3c/commands.rb} +9 -4
  36. data/lib/selenium/webdriver/remote/w3c/driver.rb +41 -0
  37. data/lib/selenium/webdriver/safari.rb +3 -6
  38. data/lib/selenium/webdriver/safari/{bridge.rb → driver.rb} +14 -6
  39. data/selenium-webdriver.gemspec +1 -3
  40. metadata +29 -45
  41. data/lib/selenium/webdriver/firefox/bridge.rb +0 -70
  42. data/lib/selenium/webdriver/firefox/w3c_bridge.rb +0 -114
  43. data/lib/selenium/webdriver/remote/w3c_bridge.rb +0 -663
  44. data/lib/selenium/webdriver/remote/w3c_capabilities.rb +0 -231
@@ -0,0 +1,266 @@
1
+ # encoding: utf-8
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 Remote
23
+ def self.const_missing(const_name)
24
+ super unless const_name == :W3CCapabilities
25
+ WebDriver.logger.deprecate 'Selenium::WebDriver::Remote::W3CCapabilities', 'Selenium::WebDriver::Remote::Capabilities'
26
+ W3C::Capabilities
27
+ end
28
+
29
+ module W3C
30
+
31
+ #
32
+ # Specification of the desired and/or actual capabilities of the browser that the
33
+ # server is being asked to create.
34
+ #
35
+ # @api private
36
+ #
37
+
38
+ # TODO - uncomment when Mozilla fixes this:
39
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1326397
40
+ class Capabilities
41
+
42
+ # TODO (alex): compare with spec
43
+ KNOWN = [
44
+ :browser_name,
45
+ :browser_version,
46
+ :platform_name,
47
+ :platform_version,
48
+ :accept_insecure_certs,
49
+ :page_load_strategy,
50
+ :proxy,
51
+ :remote_session_id,
52
+ :accessibility_checks,
53
+ :device,
54
+ :implicit_timeout,
55
+ :page_load_timeout,
56
+ :script_timeout,
57
+ ].freeze
58
+
59
+ BROWSER_SPECIFIC = ['moz:firefoxOptions'].freeze
60
+
61
+ KNOWN.each do |key|
62
+ define_method key do
63
+ @capabilities.fetch(key)
64
+ end
65
+
66
+ define_method "#{key}=" do |value|
67
+ @capabilities[key] = value
68
+ end
69
+ end
70
+
71
+ #
72
+ # Backward compatibility
73
+ #
74
+
75
+ alias_method :version, :browser_version
76
+ alias_method :version=, :browser_version=
77
+ alias_method :platform, :platform_name
78
+ alias_method :platform=, :platform_name=
79
+
80
+ #
81
+ # Convenience methods for the common choices.
82
+ #
83
+
84
+ class << self
85
+ def edge(opts = {})
86
+ new({
87
+ browser_name: 'MicrosoftEdge',
88
+ platform: :windows
89
+ }.merge(opts))
90
+ end
91
+
92
+ def firefox(opts = {})
93
+ opts[:browser_version] = opts.delete(:version) if opts.key?(:version)
94
+ opts[:platform_name] = opts.delete(:platform) if opts.key?(:platform)
95
+ opts[:timeouts] = {}
96
+ opts[:timeouts]['implicit'] = opts.delete(:implicit_timeout) if opts.key?(:implicit_timeout)
97
+ opts[:timeouts]['page load'] = opts.delete(:page_load_timeout) if opts.key?(:page_load_timeout)
98
+ opts[:timeouts]['script'] = opts.delete(:script_timeout) if opts.key?(:script_timeout)
99
+ new({browser_name: 'firefox', marionette: true}.merge(opts))
100
+ end
101
+
102
+ alias_method :ff, :firefox
103
+
104
+ #
105
+ # @api private
106
+ #
107
+
108
+ def json_create(data)
109
+ data = data.dup
110
+
111
+ caps = new
112
+ caps.browser_name = data.delete('browserName')
113
+ caps.browser_version = data.delete('browserVersion')
114
+ caps.platform_name = data.delete('platformName')
115
+ caps.platform_version = data.delete('platformVersion')
116
+ caps.accept_insecure_certs = data.delete('acceptInsecureCerts') if data.key?('acceptInsecureCerts')
117
+ caps.page_load_strategy = data.delete('pageLoadStrategy')
118
+ timeouts = data.delete('timeouts')
119
+ caps.implicit_timeout = timeouts['implicit'] if timeouts
120
+ caps.page_load_timeout = timeouts['pageLoad'] if timeouts
121
+ caps.script_timeout = timeouts['script'] if timeouts
122
+
123
+ proxy = data.delete('proxy')
124
+ caps.proxy = Proxy.json_create(proxy) unless proxy.nil? || proxy.empty?
125
+
126
+ # Remote Server Specific
127
+ caps[:remote_session_id] = data.delete('webdriver.remote.sessionid')
128
+
129
+ # Marionette Specific
130
+ caps[:accessibility_checks] = data.delete('moz:accessibilityChecks')
131
+ caps[:profile] = data.delete('moz:profile')
132
+ caps[:rotatable] = data.delete('rotatable')
133
+ caps[:device] = data.delete('device')
134
+
135
+ # any remaining pairs will be added as is, with no conversion
136
+ caps.merge!(data)
137
+
138
+ caps
139
+ end
140
+
141
+ #
142
+ # Creates W3C compliant capabilities from OSS ones.
143
+ # @param [Remote::Capabilities]
144
+ #
145
+
146
+ def from_oss(capabilities)
147
+ w3c_capabilties = new
148
+ # TODO (alex): make capabilities enumerable?
149
+ oss_capabilties = capabilities.__send__(:capabilities)
150
+ oss_capabilties.each do |name, value|
151
+ next if value.nil?
152
+ next if value.is_a?(String) && value.empty?
153
+
154
+ if w3c_capabilties.respond_to?("#{name}=")
155
+ w3c_capabilties.__send__("#{name}=", value)
156
+ elsif BROWSER_SPECIFIC.include?(name)
157
+ w3c_capabilties.merge!(name => value)
158
+ end
159
+
160
+ end
161
+
162
+ w3c_capabilties
163
+ end
164
+ end
165
+
166
+ #
167
+ # @param [Hash] opts
168
+ # @option :browser_name [String] required browser name
169
+ # @option :browser_version [String] required browser version number
170
+ # @option :platform_name [Symbol] one of :any, :win, :mac, or :x
171
+ # @option :platform_version [String] required platform version number
172
+ # @option :accept_insecure_certs [Boolean] does the driver accept SSL Cerfifications?
173
+ # @option :proxy [Selenium::WebDriver::Proxy, Hash] proxy configuration
174
+ #
175
+ # @api public
176
+ #
177
+
178
+ def initialize(opts = {})
179
+ @capabilities = opts
180
+ self.proxy = opts.delete(:proxy)
181
+ end
182
+
183
+ #
184
+ # Allows setting arbitrary capabilities.
185
+ #
186
+
187
+ def []=(key, value)
188
+ @capabilities[key] = value
189
+ end
190
+
191
+ def [](key)
192
+ @capabilities[key]
193
+ end
194
+
195
+ def merge!(other)
196
+ if other.respond_to?(:capabilities, true) && other.capabilities.is_a?(Hash)
197
+ @capabilities.merge! other.capabilities
198
+ elsif other.is_a? Hash
199
+ @capabilities.merge! other
200
+ else
201
+ raise ArgumentError, 'argument should be a Hash or implement #capabilities'
202
+ end
203
+ end
204
+
205
+ def proxy=(proxy)
206
+ case proxy
207
+ when Hash
208
+ @capabilities[:proxy] = Proxy.new(proxy)
209
+ when Proxy, nil
210
+ @capabilities[:proxy] = proxy
211
+ else
212
+ raise TypeError, "expected Hash or #{Proxy.name}, got #{proxy.inspect}:#{proxy.class}"
213
+ end
214
+ end
215
+
216
+ #
217
+ # @api private
218
+ #
219
+
220
+ def as_json(*)
221
+ hash = {}
222
+
223
+ @capabilities.each do |key, value|
224
+ case key
225
+ when :platform
226
+ hash['platform'] = value.to_s.upcase
227
+ when :proxy
228
+ hash['proxy'] = value.as_json if value
229
+ when String, :firefox_binary
230
+ hash[key.to_s] = value
231
+ when Symbol
232
+ hash[camel_case(key.to_s)] = value
233
+ else
234
+ raise TypeError, "expected String or Symbol, got #{key.inspect}:#{key.class} / #{value.inspect}"
235
+ end
236
+ end
237
+
238
+ hash
239
+ end
240
+
241
+ def to_json(*)
242
+ JSON.generate as_json
243
+ end
244
+
245
+ def ==(other)
246
+ return false unless other.is_a? self.class
247
+ as_json == other.as_json
248
+ end
249
+
250
+ alias_method :eql?, :==
251
+
252
+ protected
253
+
254
+ attr_reader :capabilities
255
+
256
+ private
257
+
258
+ def camel_case(str)
259
+ str.gsub(/_([a-z])/) { Regexp.last_match(1).upcase }
260
+ end
261
+
262
+ end # Capabilities
263
+ end # W3c
264
+ end # Remote
265
+ end # WebDriver
266
+ end # Selenium
@@ -20,12 +20,15 @@
20
20
  module Selenium
21
21
  module WebDriver
22
22
  module Remote
23
- class W3CBridge
23
+ module W3C
24
+
24
25
  #
25
26
  # http://www.w3.org/TR/2015/WD-webdriver-20150918/#list-of-endpoints
27
+ # @api private
26
28
  #
27
29
 
28
- COMMANDS = {
30
+ class Bridge
31
+ COMMANDS = {
29
32
 
30
33
  #
31
34
  # session handling
@@ -138,8 +141,10 @@ module Selenium
138
141
 
139
142
  take_screenshot: [:get, 'session/:session_id/screenshot'.freeze],
140
143
  take_element_screenshot: [:get, 'session/:session_id/element/:id/screenshot'.freeze]
141
- }.freeze
142
- end
144
+ }.freeze
145
+
146
+ end # Bridge
147
+ end # W3C
143
148
  end # Remote
144
149
  end # WebDriver
145
150
  end # Selenium
@@ -0,0 +1,41 @@
1
+ # encoding: utf-8
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 Remote
23
+ module W3C
24
+
25
+ #
26
+ # Driver implementation for remote server talking W3C dialect.
27
+ # @api private
28
+ #
29
+
30
+ class Driver < WebDriver::Driver
31
+ include DriverExtensions::UploadsFiles
32
+ include DriverExtensions::TakesScreenshot
33
+ include DriverExtensions::HasSessionId
34
+ include DriverExtensions::Rotatable
35
+ include DriverExtensions::HasRemoteStatus
36
+ include DriverExtensions::HasWebStorage
37
+ end # Driver
38
+ end # W3C
39
+ end # Remote
40
+ end # WebDriver
41
+ end # Selenium
@@ -17,8 +17,8 @@
17
17
  # specific language governing permissions and limitations
18
18
  # under the License.
19
19
 
20
- require 'websocket'
21
- require 'pathname'
20
+ require 'selenium/webdriver/safari/driver'
21
+ require 'selenium/webdriver/safari/service'
22
22
 
23
23
  module Selenium
24
24
  module WebDriver
@@ -40,7 +40,7 @@ module Selenium
40
40
  def path
41
41
  @path ||= '/Applications/Safari.app/Contents/MacOS/Safari'
42
42
  return @path if File.file?(@path) && File.executable?(@path)
43
- raise Error::WebDriverError, 'Safari is only supported on Mac' unless Platform.os == :macosx
43
+ raise Error::WebDriverError, 'Safari is only supported on Mac' unless Platform.os.mac?
44
44
  raise Error::WebDriverError, 'Unable to find Safari'
45
45
  end
46
46
 
@@ -56,6 +56,3 @@ module Selenium
56
56
  end # Safari
57
57
  end # WebDriver
58
58
  end # Selenium
59
-
60
- require 'selenium/webdriver/safari/bridge'
61
- require 'selenium/webdriver/safari/service'
@@ -20,8 +20,15 @@
20
20
  module Selenium
21
21
  module WebDriver
22
22
  module Safari
23
+
24
+ #
25
+ # Driver implementation for Safari.
23
26
  # @api private
24
- class Bridge < Remote::Bridge
27
+ #
28
+
29
+ class Driver < WebDriver::Driver
30
+ include DriverExtensions::TakesScreenshot
31
+
25
32
  def initialize(opts = {})
26
33
  opts[:desired_capabilities] ||= Remote::Capabilities.safari
27
34
 
@@ -31,9 +38,7 @@ module Selenium
31
38
 
32
39
  opts[:driver_opts] ||= {}
33
40
  if opts.key? :service_args
34
- WebDriver.logger.warn <<-DEPRECATE.gsub(/\n +| {2,}/, ' ').freeze
35
- [DEPRECATION] `:service_args` is deprecated. Pass switches using `driver_opts`
36
- DEPRECATE
41
+ WebDriver.logger.deprecate ':service_args', "driver_opts: {args: #{opts[:service_args]}}"
37
42
  opts[:driver_opts][:args] = opts.delete(:service_args)
38
43
  end
39
44
 
@@ -42,7 +47,9 @@ module Selenium
42
47
  opts[:url] = @service.uri
43
48
  end
44
49
 
45
- super(opts)
50
+ listener = opts.delete(:listener)
51
+ @bridge = Remote::Bridge.handshake(opts)
52
+ super(@bridge, listener: listener)
46
53
  end
47
54
 
48
55
  def quit
@@ -50,7 +57,8 @@ module Selenium
50
57
  ensure
51
58
  @service.stop if @service
52
59
  end
53
- end # Bridge
60
+
61
+ end # Driver
54
62
  end # Safari
55
63
  end # WebDriver
56
64
  end # Selenium
@@ -5,7 +5,7 @@ raise "cwd must be #{root} when reading gemspec" if root != Dir.pwd
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = 'selenium-webdriver'
8
- s.version = '3.4.0'
8
+ s.version = '3.4.1'
9
9
 
10
10
  s.authors = ['Alex Rodionov', 'Titus Fortner']
11
11
  s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com']
@@ -24,11 +24,9 @@ HTML of the application.'
24
24
 
25
25
  s.add_runtime_dependency 'rubyzip', ['~> 1.0']
26
26
  s.add_runtime_dependency 'childprocess', ['~> 0.5']
27
- s.add_runtime_dependency 'websocket', ['~> 1.0']
28
27
 
29
28
  s.add_development_dependency 'rspec', ['~> 3.0']
30
29
  s.add_development_dependency 'rack', ['~> 1.0']
31
- s.add_development_dependency 'ci_reporter', ['~> 1.6', '>= 1.6.2']
32
30
  s.add_development_dependency 'webmock', ['~> 2.0']
33
31
  s.add_development_dependency 'yard', ['~> 0.8.7']
34
32
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 3.4.0
5
+ version: 3.4.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Alex Rodionov
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2017-04-21 00:00:00 -05:00
14
+ date: 2017-06-13 00:00:00 +07:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -36,75 +36,50 @@ dependencies:
36
36
  version: "0.5"
37
37
  type: :runtime
38
38
  version_requirements: *id002
39
- - !ruby/object:Gem::Dependency
40
- name: websocket
41
- prerelease: false
42
- requirement: &id003 !ruby/object:Gem::Requirement
43
- none: false
44
- requirements:
45
- - - ~>
46
- - !ruby/object:Gem::Version
47
- version: "1.0"
48
- type: :runtime
49
- version_requirements: *id003
50
39
  - !ruby/object:Gem::Dependency
51
40
  name: rspec
52
41
  prerelease: false
53
- requirement: &id004 !ruby/object:Gem::Requirement
42
+ requirement: &id003 !ruby/object:Gem::Requirement
54
43
  none: false
55
44
  requirements:
56
45
  - - ~>
57
46
  - !ruby/object:Gem::Version
58
47
  version: "3.0"
59
48
  type: :development
60
- version_requirements: *id004
49
+ version_requirements: *id003
61
50
  - !ruby/object:Gem::Dependency
62
51
  name: rack
63
52
  prerelease: false
64
- requirement: &id005 !ruby/object:Gem::Requirement
53
+ requirement: &id004 !ruby/object:Gem::Requirement
65
54
  none: false
66
55
  requirements:
67
56
  - - ~>
68
57
  - !ruby/object:Gem::Version
69
58
  version: "1.0"
70
59
  type: :development
71
- version_requirements: *id005
72
- - !ruby/object:Gem::Dependency
73
- name: ci_reporter
74
- prerelease: false
75
- requirement: &id006 !ruby/object:Gem::Requirement
76
- none: false
77
- requirements:
78
- - - ~>
79
- - !ruby/object:Gem::Version
80
- version: "1.6"
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: 1.6.2
84
- type: :development
85
- version_requirements: *id006
60
+ version_requirements: *id004
86
61
  - !ruby/object:Gem::Dependency
87
62
  name: webmock
88
63
  prerelease: false
89
- requirement: &id007 !ruby/object:Gem::Requirement
64
+ requirement: &id005 !ruby/object:Gem::Requirement
90
65
  none: false
91
66
  requirements:
92
67
  - - ~>
93
68
  - !ruby/object:Gem::Version
94
69
  version: "2.0"
95
70
  type: :development
96
- version_requirements: *id007
71
+ version_requirements: *id005
97
72
  - !ruby/object:Gem::Dependency
98
73
  name: yard
99
74
  prerelease: false
100
- requirement: &id008 !ruby/object:Gem::Requirement
75
+ requirement: &id006 !ruby/object:Gem::Requirement
101
76
  none: false
102
77
  requirements:
103
78
  - - ~>
104
79
  - !ruby/object:Gem::Version
105
80
  version: 0.8.7
106
81
  type: :development
107
- version_requirements: *id008
82
+ version_requirements: *id006
108
83
  description: |-
109
84
  WebDriver is a tool for writing automated tests of websites.
110
85
  It aims to mimic the behaviour of a real user, and as such interacts with the
@@ -121,6 +96,7 @@ extra_rdoc_files: []
121
96
  files:
122
97
  - CHANGES
123
98
  - Gemfile
99
+ - Gemfile.lock
124
100
  - LICENSE
125
101
  - README.md
126
102
  - selenium-webdriver.gemspec
@@ -138,7 +114,8 @@ files:
138
114
  - lib/selenium/webdriver/safari.rb
139
115
  - lib/selenium/webdriver/support.rb
140
116
  - lib/selenium/webdriver/atoms/getAttribute.js
141
- - lib/selenium/webdriver/chrome/bridge.rb
117
+ - lib/selenium/webdriver/chrome/driver.rb
118
+ - lib/selenium/webdriver/chrome/options.rb
142
119
  - lib/selenium/webdriver/chrome/profile.rb
143
120
  - lib/selenium/webdriver/chrome/service.rb
144
121
  - lib/selenium/webdriver/common/action_builder.rb
@@ -195,37 +172,44 @@ files:
195
172
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
196
173
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
197
174
  - lib/selenium/webdriver/edge/bridge.rb
175
+ - lib/selenium/webdriver/edge/driver.rb
198
176
  - lib/selenium/webdriver/edge/service.rb
199
177
  - lib/selenium/webdriver/firefox/binary.rb
200
- - lib/selenium/webdriver/firefox/bridge.rb
178
+ - lib/selenium/webdriver/firefox/driver.rb
201
179
  - lib/selenium/webdriver/firefox/extension.rb
202
180
  - lib/selenium/webdriver/firefox/launcher.rb
181
+ - lib/selenium/webdriver/firefox/options.rb
203
182
  - lib/selenium/webdriver/firefox/profile.rb
204
183
  - lib/selenium/webdriver/firefox/profiles_ini.rb
205
184
  - lib/selenium/webdriver/firefox/service.rb
206
185
  - lib/selenium/webdriver/firefox/util.rb
207
- - lib/selenium/webdriver/firefox/w3c_bridge.rb
208
186
  - lib/selenium/webdriver/firefox/extension/prefs.json
209
187
  - lib/selenium/webdriver/firefox/extension/webdriver.xpi
188
+ - lib/selenium/webdriver/firefox/legacy/driver.rb
189
+ - lib/selenium/webdriver/firefox/marionette/driver.rb
210
190
  - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
211
191
  - lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
212
- - lib/selenium/webdriver/ie/bridge.rb
192
+ - lib/selenium/webdriver/ie/driver.rb
213
193
  - lib/selenium/webdriver/ie/service.rb
214
- - lib/selenium/webdriver/phantomjs/bridge.rb
194
+ - lib/selenium/webdriver/phantomjs/driver.rb
215
195
  - lib/selenium/webdriver/phantomjs/service.rb
216
196
  - lib/selenium/webdriver/remote/bridge.rb
217
197
  - lib/selenium/webdriver/remote/capabilities.rb
218
- - lib/selenium/webdriver/remote/commands.rb
198
+ - lib/selenium/webdriver/remote/driver.rb
219
199
  - lib/selenium/webdriver/remote/response.rb
220
200
  - lib/selenium/webdriver/remote/server_error.rb
221
- - lib/selenium/webdriver/remote/w3c_bridge.rb
222
- - lib/selenium/webdriver/remote/w3c_capabilities.rb
223
- - lib/selenium/webdriver/remote/w3c_commands.rb
224
201
  - lib/selenium/webdriver/remote/http/common.rb
225
202
  - lib/selenium/webdriver/remote/http/curb.rb
226
203
  - lib/selenium/webdriver/remote/http/default.rb
227
204
  - lib/selenium/webdriver/remote/http/persistent.rb
228
- - lib/selenium/webdriver/safari/bridge.rb
205
+ - lib/selenium/webdriver/remote/oss/bridge.rb
206
+ - lib/selenium/webdriver/remote/oss/commands.rb
207
+ - lib/selenium/webdriver/remote/oss/driver.rb
208
+ - lib/selenium/webdriver/remote/w3c/bridge.rb
209
+ - lib/selenium/webdriver/remote/w3c/capabilities.rb
210
+ - lib/selenium/webdriver/remote/w3c/commands.rb
211
+ - lib/selenium/webdriver/remote/w3c/driver.rb
212
+ - lib/selenium/webdriver/safari/driver.rb
229
213
  - lib/selenium/webdriver/safari/service.rb
230
214
  - lib/selenium/webdriver/support/abstract_event_listener.rb
231
215
  - lib/selenium/webdriver/support/block_event_listener.rb