selenium-webdriver 3.8.0 → 3.9.0
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.
- checksums.yaml +5 -5
- data/CHANGES +18 -0
- data/README.md +1 -1
- data/lib/selenium/webdriver/chrome.rb +1 -0
- data/lib/selenium/webdriver/chrome/bridge.rb +43 -0
- data/lib/selenium/webdriver/chrome/driver.rb +3 -0
- data/lib/selenium/webdriver/common.rb +1 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +49 -0
- data/lib/selenium/webdriver/common/error.rb +1 -1
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/service.rb +1 -1
- data/lib/selenium/webdriver/remote/bridge.rb +3 -3
- data/lib/selenium/webdriver/remote/response.rb +1 -1
- data/lib/selenium/webdriver/remote/w3c/commands.rb +1 -1
- data/selenium-webdriver.gemspec +3 -3
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4de4171f1c01dacf1c8f143f742fe0fee1b011b9
|
4
|
+
data.tar.gz: 970370fe12cfc9cb0a5c241521c96f8cca968c52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23b922cf527ea641ea9ee4941fb2f39cdea614b41a025a88730a4e104c24b6d4de316e7f13d262c2b31952cf5336c223b5e2923e987e13f48c2fd40ec6fa1c58
|
7
|
+
data.tar.gz: b9f234b46090ae9674fc315b1248a56bb5a1ad806ad77d707713d95b133ea6d42b5f9f13348d3e71cab08575b76163b27a05d870057797acec2e01b22a52a756
|
data/CHANGES
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
3.9.0 (2018-02-06)
|
2
|
+
==================
|
3
|
+
|
4
|
+
Ruby:
|
5
|
+
* Fixed a bug when omitted capabilities caused NoMethodError (issue #5185)
|
6
|
+
* Fixed a bug when getting page source in W3C dialect caused WebDriverError (thanks @KazuCocoa)
|
7
|
+
* Fixed a bug when getting backtrace of server error would case NoMethodError (thanks @mcking49)
|
8
|
+
* Updated YARD to ~> 0.9.11
|
9
|
+
* Updated rubyzip to ~> 1.2 (thanks @michaelglass)
|
10
|
+
|
11
|
+
Chrome:
|
12
|
+
* Added support for getting network conditions via Driver#network_conditions
|
13
|
+
* Added support for setting network conditions via Driver#network_conditions=
|
14
|
+
* Added support to allow driver respond with custom error codes (issue #5376)
|
15
|
+
|
16
|
+
Firefox:
|
17
|
+
* Improved GeckoDriver binary lookup mechanism (issue #5240)
|
18
|
+
|
1
19
|
3.8.0 (2017-12-01)
|
2
20
|
==================
|
3
21
|
|
data/README.md
CHANGED
@@ -16,7 +16,7 @@ and has been tested to work on MRI (2.0 through 2.2),
|
|
16
16
|
|
17
17
|
## License
|
18
18
|
|
19
|
-
Copyright 2009-
|
19
|
+
Copyright 2009-2018 Software Freedom Conservancy
|
20
20
|
|
21
21
|
Licensed to the Software Freedom Conservancy (SFC) under one
|
22
22
|
or more contributor license agreements. See the NOTICE file
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Licensed to the Software Freedom Conservancy (SFC) under one
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
3
|
+
# distributed with this work for additional information
|
4
|
+
# regarding copyright ownership. The SFC licenses this file
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
6
|
+
# "License"); you may not use this file except in compliance
|
7
|
+
# with the License. You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
|
18
|
+
module Selenium
|
19
|
+
module WebDriver
|
20
|
+
module Chrome
|
21
|
+
module Bridge
|
22
|
+
|
23
|
+
COMMANDS = {
|
24
|
+
get_network_conditions: [:get, '/session/:session_id/chromium/network_conditions'.freeze],
|
25
|
+
set_network_conditions: [:post, '/session/:session_id/chromium/network_conditions'.freeze]
|
26
|
+
}.freeze
|
27
|
+
|
28
|
+
def commands(command)
|
29
|
+
COMMANDS[command] || super
|
30
|
+
end
|
31
|
+
|
32
|
+
def network_conditions
|
33
|
+
execute :get_network_conditions
|
34
|
+
end
|
35
|
+
|
36
|
+
def network_conditions=(conditions)
|
37
|
+
execute :set_network_conditions, {}, {network_conditions: conditions}
|
38
|
+
end
|
39
|
+
|
40
|
+
end # Bridge
|
41
|
+
end # Chrome
|
42
|
+
end # WebDriver
|
43
|
+
end # Selenium
|
@@ -25,6 +25,7 @@ module Selenium
|
|
25
25
|
#
|
26
26
|
|
27
27
|
class Driver < WebDriver::Driver
|
28
|
+
include DriverExtensions::HasNetworkConditions
|
28
29
|
include DriverExtensions::HasTouchScreen
|
29
30
|
include DriverExtensions::HasWebStorage
|
30
31
|
include DriverExtensions::TakesScreenshot
|
@@ -44,6 +45,8 @@ module Selenium
|
|
44
45
|
|
45
46
|
listener = opts.delete(:listener)
|
46
47
|
@bridge = Remote::Bridge.handshake(opts)
|
48
|
+
@bridge.extend Bridge
|
49
|
+
|
47
50
|
super(@bridge, listener: listener)
|
48
51
|
end
|
49
52
|
|
@@ -54,6 +54,7 @@ require 'selenium/webdriver/common/driver_extensions/has_location'
|
|
54
54
|
require 'selenium/webdriver/common/driver_extensions/has_session_id'
|
55
55
|
require 'selenium/webdriver/common/driver_extensions/has_touch_screen'
|
56
56
|
require 'selenium/webdriver/common/driver_extensions/has_remote_status'
|
57
|
+
require 'selenium/webdriver/common/driver_extensions/has_network_conditions'
|
57
58
|
require 'selenium/webdriver/common/driver_extensions/has_network_connection'
|
58
59
|
require 'selenium/webdriver/common/driver_extensions/uploads_files'
|
59
60
|
require 'selenium/webdriver/common/driver_extensions/has_addons'
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Licensed to the Software Freedom Conservancy (SFC) under one
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
3
|
+
# distributed with this work for additional information
|
4
|
+
# regarding copyright ownership. The SFC licenses this file
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
6
|
+
# "License"); you may not use this file except in compliance
|
7
|
+
# with the License. You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
|
18
|
+
module Selenium
|
19
|
+
module WebDriver
|
20
|
+
module DriverExtensions
|
21
|
+
module HasNetworkConditions
|
22
|
+
|
23
|
+
#
|
24
|
+
# Returns network conditions.
|
25
|
+
#
|
26
|
+
# @return [Hash]
|
27
|
+
#
|
28
|
+
|
29
|
+
def network_conditions
|
30
|
+
@bridge.network_conditions
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# Sets network conditions
|
35
|
+
#
|
36
|
+
# @param [Hash] conditions
|
37
|
+
# @option conditions [Integer] :latency
|
38
|
+
# @option conditions [Integer] :throughput
|
39
|
+
# @option conditions [Boolean] :offline
|
40
|
+
#
|
41
|
+
|
42
|
+
def network_conditions=(conditions)
|
43
|
+
@bridge.network_conditions = conditions
|
44
|
+
end
|
45
|
+
|
46
|
+
end # HasNetworkConditions
|
47
|
+
end # DriverExtensions
|
48
|
+
end # WebDriver
|
49
|
+
end # Selenium
|
Binary file
|
@@ -24,7 +24,7 @@ module Selenium
|
|
24
24
|
|
25
25
|
class Service < WebDriver::Service
|
26
26
|
DEFAULT_PORT = 4444
|
27
|
-
@executable = 'geckodriver
|
27
|
+
@executable = 'geckodriver'.freeze
|
28
28
|
@missing_text = <<-ERROR.gsub(/\n +| {2,}/, ' ').freeze
|
29
29
|
Unable to find Mozilla geckodriver. Please download the server from
|
30
30
|
https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH.
|
@@ -40,13 +40,13 @@ module Selenium
|
|
40
40
|
# @return [OSS:Bridge, W3C::Bridge]
|
41
41
|
#
|
42
42
|
def self.handshake(**opts)
|
43
|
-
desired_capabilities = opts.delete(:desired_capabilities)
|
43
|
+
desired_capabilities = opts.delete(:desired_capabilities) { Capabilities.new }
|
44
44
|
|
45
45
|
if desired_capabilities.is_a?(Symbol)
|
46
|
-
unless
|
46
|
+
unless Capabilities.respond_to?(desired_capabilities)
|
47
47
|
raise Error::WebDriverError, "invalid desired capability: #{desired_capabilities.inspect}"
|
48
48
|
end
|
49
|
-
desired_capabilities =
|
49
|
+
desired_capabilities = Capabilities.__send__(desired_capabilities)
|
50
50
|
end
|
51
51
|
|
52
52
|
bridge = new(opts)
|
@@ -77,7 +77,7 @@ module Selenium
|
|
77
77
|
|
78
78
|
server_trace = error_payload[STACKTRACE_KEY] ||
|
79
79
|
error_payload[STACKTRACE_KEY.downcase] ||
|
80
|
-
error_payload['value'][STACKTRACE_KEY]
|
80
|
+
(error_payload['value'] && error_payload['value'][STACKTRACE_KEY])
|
81
81
|
return unless server_trace
|
82
82
|
|
83
83
|
backtrace = case server_trace
|
@@ -88,7 +88,7 @@ module Selenium
|
|
88
88
|
# document handling
|
89
89
|
#
|
90
90
|
|
91
|
-
get_page_source: [:get, '
|
91
|
+
get_page_source: [:get, 'session/:session_id/source'.freeze],
|
92
92
|
execute_script: [:post, 'session/:session_id/execute/sync'.freeze],
|
93
93
|
execute_async_script: [:post, 'session/:session_id/execute/async'.freeze],
|
94
94
|
|
data/selenium-webdriver.gemspec
CHANGED
@@ -3,7 +3,7 @@ raise "cwd must be #{root} when reading gemspec" if root != Dir.pwd
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'selenium-webdriver'
|
6
|
-
s.version = '3.
|
6
|
+
s.version = '3.9.0'
|
7
7
|
|
8
8
|
s.authors = ['Alex Rodionov', 'Titus Fortner']
|
9
9
|
s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com']
|
@@ -20,12 +20,12 @@ HTML of the application.'
|
|
20
20
|
s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
|
21
21
|
s.require_paths = ['lib']
|
22
22
|
|
23
|
-
s.add_runtime_dependency 'rubyzip', ['~> 1.
|
23
|
+
s.add_runtime_dependency 'rubyzip', ['~> 1.2']
|
24
24
|
s.add_runtime_dependency 'childprocess', ['~> 0.5']
|
25
25
|
|
26
26
|
s.add_development_dependency 'rspec', ['~> 3.0']
|
27
27
|
s.add_development_dependency 'rack', ['~> 1.0']
|
28
28
|
s.add_development_dependency 'webmock', ['~> 2.0']
|
29
|
-
s.add_development_dependency 'yard', ['~> 0.9.
|
29
|
+
s.add_development_dependency 'yard', ['~> 0.9.11']
|
30
30
|
s.add_development_dependency 'rubocop', ['~> 0.50.0']
|
31
31
|
end
|
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: 3.
|
4
|
+
version: 3.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Rodionov
|
@@ -9,14 +9,14 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.2'
|
20
20
|
name: rubyzip
|
21
21
|
prerelease: false
|
22
22
|
type: :runtime
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '1.
|
27
|
+
version: '1.2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
@@ -86,7 +86,7 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.9.
|
89
|
+
version: 0.9.11
|
90
90
|
name: yard
|
91
91
|
prerelease: false
|
92
92
|
type: :development
|
@@ -94,7 +94,7 @@ dependencies:
|
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.9.
|
97
|
+
version: 0.9.11
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
@@ -130,6 +130,7 @@ files:
|
|
130
130
|
- lib/selenium/webdriver/atoms.rb
|
131
131
|
- lib/selenium/webdriver/atoms/getAttribute.js
|
132
132
|
- lib/selenium/webdriver/chrome.rb
|
133
|
+
- lib/selenium/webdriver/chrome/bridge.rb
|
133
134
|
- lib/selenium/webdriver/chrome/driver.rb
|
134
135
|
- lib/selenium/webdriver/chrome/options.rb
|
135
136
|
- lib/selenium/webdriver/chrome/profile.rb
|
@@ -141,6 +142,7 @@ files:
|
|
141
142
|
- lib/selenium/webdriver/common/driver.rb
|
142
143
|
- lib/selenium/webdriver/common/driver_extensions/has_addons.rb
|
143
144
|
- lib/selenium/webdriver/common/driver_extensions/has_location.rb
|
145
|
+
- lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
|
144
146
|
- lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
|
145
147
|
- lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
|
146
148
|
- lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
|
@@ -259,7 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
259
261
|
version: 1.3.1
|
260
262
|
requirements: []
|
261
263
|
rubyforge_project:
|
262
|
-
rubygems_version: 2.6.
|
264
|
+
rubygems_version: 2.6.14
|
263
265
|
signing_key:
|
264
266
|
specification_version: 4
|
265
267
|
summary: The next generation developer focused tool for automated testing of webapps
|