selenium-webdriver 3.11.0 → 3.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES +23 -1
- data/lib/selenium/webdriver.rb +1 -0
- data/lib/selenium/webdriver/chrome/profile.rb +1 -1
- data/lib/selenium/webdriver/common.rb +2 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +40 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +49 -0
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/remote/http/common.rb +5 -2
- data/lib/selenium/webdriver/remote/http/default.rb +1 -1
- data/lib/selenium/webdriver/safari.rb +1 -0
- data/lib/selenium/webdriver/safari/bridge.rb +49 -0
- data/lib/selenium/webdriver/safari/driver.rb +4 -0
- data/lib/selenium/webdriver/version.rb +22 -0
- data/selenium-webdriver.gemspec +14 -5
- metadata +13 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e7904f54f32f24552260a185e59adae4f08dc44
|
4
|
+
data.tar.gz: 4983d6f3db1619a3cad1686235dc2fc3bcbe9857
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd65f44de6eb59601fee4816fb1439f7fc3d225291a6662a5d845f5b9d33fbadd2dd718c09b9a7a430be3068630c939e15040c3e99ae711eab572ceb4ccb8f3e
|
7
|
+
data.tar.gz: da56a1181546a60011aa218c40adba5b08fa66ef00082bb7fb3c74f147b4ea73f8d79b8b93ce19449d5ac5bfc6d3174a18e7034cbb653450475f771fdc4dfb07
|
data/CHANGES
CHANGED
@@ -1,10 +1,32 @@
|
|
1
|
+
3.12.0 (2018-05-08)
|
2
|
+
===================
|
3
|
+
|
4
|
+
Ruby:
|
5
|
+
* Added User-Agent header to requests from Selenium to give remote
|
6
|
+
ends more visibility into distribution of clients (thanks @sah)
|
7
|
+
* Added Selenium::WebDriver::VERSION constant (thanks @sah)
|
8
|
+
* Added changelog link to RubyGems page
|
9
|
+
* Fixed a bug when requests were sent with empty Content-Type,
|
10
|
+
which should instead be application/json (issue #5615 and #5659)
|
11
|
+
* Fixed a bug when failed connection attempt was retried without
|
12
|
+
grace period for remote to resolve its problem (thanks @amckinley42)
|
13
|
+
* Fixed a bug with accidentally removed HasNetworkConnection driver extension
|
14
|
+
|
15
|
+
Chrome:
|
16
|
+
* Fixed a bug when deprecation message for using Chrome extensions
|
17
|
+
was incorrectly shown (thanks @treby)
|
18
|
+
|
19
|
+
Safari:
|
20
|
+
* Added support getting permissions via Driver#permissions
|
21
|
+
* Added support setting permissions via Driver#permissions=
|
22
|
+
* Added support enabling web inspector via Driver#attach_debugger
|
23
|
+
|
1
24
|
3.11.0 (2018-03-11)
|
2
25
|
===================
|
3
26
|
|
4
27
|
Ruby:
|
5
28
|
* No changes in Ruby bindings for this release
|
6
29
|
|
7
|
-
|
8
30
|
3.10.0 (2018-03-02)
|
9
31
|
===================
|
10
32
|
|
data/lib/selenium/webdriver.rb
CHANGED
@@ -56,6 +56,8 @@ require 'selenium/webdriver/common/driver_extensions/has_touch_screen'
|
|
56
56
|
require 'selenium/webdriver/common/driver_extensions/has_remote_status'
|
57
57
|
require 'selenium/webdriver/common/driver_extensions/has_network_conditions'
|
58
58
|
require 'selenium/webdriver/common/driver_extensions/has_network_connection'
|
59
|
+
require 'selenium/webdriver/common/driver_extensions/has_permissions'
|
60
|
+
require 'selenium/webdriver/common/driver_extensions/has_debugger'
|
59
61
|
require 'selenium/webdriver/common/driver_extensions/uploads_files'
|
60
62
|
require 'selenium/webdriver/common/driver_extensions/has_addons'
|
61
63
|
require 'selenium/webdriver/common/interactions/interactions'
|
@@ -0,0 +1,40 @@
|
|
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 HasDebugger
|
22
|
+
|
23
|
+
#
|
24
|
+
# Attaches debugger to session.
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
# driver.attach_debugger
|
28
|
+
# driver.execute_script('debugger')
|
29
|
+
#
|
30
|
+
# @return [Hash]
|
31
|
+
#
|
32
|
+
|
33
|
+
def attach_debugger
|
34
|
+
@bridge.attach_debugger
|
35
|
+
end
|
36
|
+
|
37
|
+
end # HasDebugger
|
38
|
+
end # DriverExtensions
|
39
|
+
end # WebDriver
|
40
|
+
end # Selenium
|
@@ -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 HasPermissions
|
22
|
+
|
23
|
+
#
|
24
|
+
# Returns permissions.
|
25
|
+
#
|
26
|
+
# @return [Hash]
|
27
|
+
#
|
28
|
+
|
29
|
+
def permissions
|
30
|
+
@bridge.permissions
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# Sets permissions.
|
35
|
+
#
|
36
|
+
# @example
|
37
|
+
# driver.permissions = {'getUserMedia' => true}
|
38
|
+
#
|
39
|
+
# @param [Hash<Symbol, Boolean>] permissions
|
40
|
+
#
|
41
|
+
|
42
|
+
def permissions=(permissions)
|
43
|
+
@bridge.permissions = permissions
|
44
|
+
end
|
45
|
+
|
46
|
+
end # HasPermissions
|
47
|
+
end # DriverExtensions
|
48
|
+
end # WebDriver
|
49
|
+
end # Selenium
|
Binary file
|
@@ -22,7 +22,11 @@ module Selenium
|
|
22
22
|
class Common
|
23
23
|
MAX_REDIRECTS = 20 # same as chromium/gecko
|
24
24
|
CONTENT_TYPE = 'application/json'.freeze
|
25
|
-
DEFAULT_HEADERS = {
|
25
|
+
DEFAULT_HEADERS = {
|
26
|
+
'Accept' => CONTENT_TYPE,
|
27
|
+
'Content-Type' => "#{CONTENT_TYPE}; charset=UTF-8",
|
28
|
+
'User-Agent' => "selenium/#{WebDriver::VERSION} (ruby #{Platform.os})"
|
29
|
+
}.freeze
|
26
30
|
|
27
31
|
attr_accessor :timeout
|
28
32
|
attr_writer :server_url
|
@@ -46,7 +50,6 @@ module Selenium
|
|
46
50
|
|
47
51
|
if command_hash
|
48
52
|
payload = JSON.generate(command_hash)
|
49
|
-
headers['Content-Type'] = "#{CONTENT_TYPE}; charset=utf-8"
|
50
53
|
headers['Content-Length'] = payload.bytesize.to_s if [:post, :put].include?(verb)
|
51
54
|
|
52
55
|
WebDriver.logger.info(" >>> #{url} | #{payload}")
|
@@ -84,7 +84,7 @@ module Selenium
|
|
84
84
|
# http://msdn.microsoft.com/en-us/library/aa560610%28v=bts.20%29.aspx
|
85
85
|
raise if retries >= MAX_RETRIES
|
86
86
|
retries += 1
|
87
|
-
|
87
|
+
sleep 2
|
88
88
|
retry
|
89
89
|
rescue Errno::EADDRNOTAVAIL => ex
|
90
90
|
# a retry is sometimes needed when the port becomes temporarily unavailable
|
@@ -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 Safari
|
21
|
+
module Bridge
|
22
|
+
|
23
|
+
# https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/WebDriverEndpointDoc/Commands/Commands.html
|
24
|
+
COMMANDS = {
|
25
|
+
get_permissions: [:get, '/session/:session_id/apple/permissions'.freeze],
|
26
|
+
set_permissions: [:post, '/session/:session_id/apple/permissions'.freeze],
|
27
|
+
attach_debugger: [:post, '/session/:session_id/apple/attach_debugger'.freeze]
|
28
|
+
}.freeze
|
29
|
+
|
30
|
+
def commands(command)
|
31
|
+
COMMANDS[command] || super
|
32
|
+
end
|
33
|
+
|
34
|
+
def permissions
|
35
|
+
execute(:get_permissions)['permissions']
|
36
|
+
end
|
37
|
+
|
38
|
+
def permissions=(permissions)
|
39
|
+
execute :set_permissions, {}, {permissions: permissions}
|
40
|
+
end
|
41
|
+
|
42
|
+
def attach_debugger
|
43
|
+
execute :attach_debugger, {}, {}
|
44
|
+
end
|
45
|
+
|
46
|
+
end # Bridge
|
47
|
+
end # Safari
|
48
|
+
end # WebDriver
|
49
|
+
end # Selenium
|
@@ -25,6 +25,8 @@ module Selenium
|
|
25
25
|
#
|
26
26
|
|
27
27
|
class Driver < WebDriver::Driver
|
28
|
+
include DriverExtensions::HasDebugger
|
29
|
+
include DriverExtensions::HasPermissions
|
28
30
|
include DriverExtensions::TakesScreenshot
|
29
31
|
|
30
32
|
def initialize(opts = {})
|
@@ -42,6 +44,8 @@ module Selenium
|
|
42
44
|
|
43
45
|
listener = opts.delete(:listener)
|
44
46
|
@bridge = Remote::Bridge.handshake(opts)
|
47
|
+
@bridge.extend Bridge
|
48
|
+
|
45
49
|
super(@bridge, listener: listener)
|
46
50
|
end
|
47
51
|
|
@@ -0,0 +1,22 @@
|
|
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
|
+
VERSION = '3.12.0'.freeze
|
21
|
+
end # WebDriver
|
22
|
+
end # Selenium
|
data/selenium-webdriver.gemspec
CHANGED
@@ -1,18 +1,27 @@
|
|
1
1
|
root = File.expand_path(File.dirname(__FILE__))
|
2
2
|
raise "cwd must be #{root} when reading gemspec" if root != Dir.pwd
|
3
3
|
|
4
|
+
$LOAD_PATH.push(File.expand_path('lib', root))
|
5
|
+
require 'selenium/webdriver/version'
|
6
|
+
|
4
7
|
Gem::Specification.new do |s|
|
5
8
|
s.name = 'selenium-webdriver'
|
6
|
-
s.version =
|
9
|
+
s.version = Selenium::WebDriver::VERSION
|
7
10
|
|
8
11
|
s.authors = ['Alex Rodionov', 'Titus Fortner']
|
9
12
|
s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com']
|
10
|
-
|
11
|
-
It aims to mimic the behaviour of a real user, and as such interacts with the
|
12
|
-
HTML of the application.'
|
13
|
+
|
13
14
|
s.summary = 'The next generation developer focused tool for automated testing of webapps'
|
14
|
-
s.
|
15
|
+
s.description = 'WebDriver is a tool for writing automated tests of websites. ' \
|
16
|
+
'It aims to mimic the behaviour of a real user, ' \
|
17
|
+
'and as such interacts with the HTML of the application.'
|
18
|
+
|
15
19
|
s.license = 'Apache-2.0'
|
20
|
+
s.homepage = 'https://github.com/SeleniumHQ/selenium'
|
21
|
+
s.metadata = {
|
22
|
+
'changelog_uri' => 'https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES',
|
23
|
+
'source_code_uri' => 'https://github.com/SeleniumHQ/selenium/tree/master/rb'
|
24
|
+
}
|
16
25
|
|
17
26
|
s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to? :required_rubygems_version=
|
18
27
|
s.required_ruby_version = Gem::Requirement.new('>= 2.0')
|
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.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Rodionov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-05-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,10 +109,9 @@ dependencies:
|
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: 0.50.0
|
112
|
-
description:
|
113
|
-
|
114
|
-
|
115
|
-
HTML of the application.
|
112
|
+
description: WebDriver is a tool for writing automated tests of websites. It aims
|
113
|
+
to mimic the behaviour of a real user, and as such interacts with the HTML of the
|
114
|
+
application.
|
116
115
|
email:
|
117
116
|
- p0deje@gmail.com
|
118
117
|
- titusfortner@gmail.com
|
@@ -141,9 +140,11 @@ files:
|
|
141
140
|
- lib/selenium/webdriver/common/bridge_helper.rb
|
142
141
|
- lib/selenium/webdriver/common/driver.rb
|
143
142
|
- lib/selenium/webdriver/common/driver_extensions/has_addons.rb
|
143
|
+
- lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
|
144
144
|
- lib/selenium/webdriver/common/driver_extensions/has_location.rb
|
145
145
|
- lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
|
146
146
|
- lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
|
147
|
+
- lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
|
147
148
|
- lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
|
148
149
|
- lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
|
149
150
|
- lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb
|
@@ -231,6 +232,7 @@ files:
|
|
231
232
|
- lib/selenium/webdriver/remote/w3c/capabilities.rb
|
232
233
|
- lib/selenium/webdriver/remote/w3c/commands.rb
|
233
234
|
- lib/selenium/webdriver/safari.rb
|
235
|
+
- lib/selenium/webdriver/safari/bridge.rb
|
234
236
|
- lib/selenium/webdriver/safari/driver.rb
|
235
237
|
- lib/selenium/webdriver/safari/service.rb
|
236
238
|
- lib/selenium/webdriver/support.rb
|
@@ -240,11 +242,14 @@ files:
|
|
240
242
|
- lib/selenium/webdriver/support/escaper.rb
|
241
243
|
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
242
244
|
- lib/selenium/webdriver/support/select.rb
|
245
|
+
- lib/selenium/webdriver/version.rb
|
243
246
|
- selenium-webdriver.gemspec
|
244
|
-
homepage: https://github.com/
|
247
|
+
homepage: https://github.com/SeleniumHQ/selenium
|
245
248
|
licenses:
|
246
249
|
- Apache-2.0
|
247
|
-
metadata:
|
250
|
+
metadata:
|
251
|
+
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES
|
252
|
+
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/master/rb
|
248
253
|
post_install_message:
|
249
254
|
rdoc_options: []
|
250
255
|
require_paths:
|