selenium-webdriver 3.142.2 → 3.142.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59326754a9ae3f92a632b93b2c55a85567a5e1c6
4
- data.tar.gz: 544ab60eef8205b5db5d35d89aa5a44c430d908e
3
+ metadata.gz: 4b75c8768c4e57d00ee16b2ce24fb7531074c89a
4
+ data.tar.gz: 84c67463ae2e1601cb0f6e57b89d0350aa5f35f6
5
5
  SHA512:
6
- metadata.gz: 80dc6e2ad10a7f5c38cd77c1097b63ea82a66e003acc535f751f3dc542231f4eee0a144ce08fc33b487639fc05fc7cf5ec9edfbfe45e62ab588bc0e7684a188d
7
- data.tar.gz: 3528f7acab90183f9651d18a99fba645a23f3cca3d32627f322d24ea5d9959d047cf6bab8094a5da076eec1f3b2052f653a1f7950c679dedca0270669e40fc54
6
+ metadata.gz: 5727d2019f0648bf85d9d7ba99a7d85f2f5e5a0248566b802290814f64f90f0b035d1fc4a36e6e00bfbe6b4b6a9633768aa6ba576bc58ee6a0648ed960ca78e2
7
+ data.tar.gz: 84d07768e3743275502cc0c546c943b27e97657e5dedfe9bb18891e379e1a814a308c681f5ba77cf4fc51e45320f0f7b566ad16ec7013536cd94276b064274d0
data/CHANGES CHANGED
@@ -1,3 +1,18 @@
1
+ 3.142.4 (2019-09-02)
2
+ ====================
3
+
4
+ Chrome:
5
+ * Added support for new command for getting logs in ChromeDriver 76+
6
+ with W3C mode on
7
+
8
+ 3.142.3 (2019-05-21)
9
+ ====================
10
+
11
+ Firefox:
12
+ * Fixed a regression when Firefox binary path was not sent to GeckoDriver
13
+ by default and browser could not be located (issue #7219)
14
+
15
+
1
16
  3.142.2 (2019-05-11)
2
17
  ====================
3
18
 
@@ -25,7 +25,9 @@ module Selenium
25
25
  COMMANDS = {
26
26
  get_network_conditions: [:get, 'session/:session_id/chromium/network_conditions'],
27
27
  set_network_conditions: [:post, 'session/:session_id/chromium/network_conditions'],
28
- send_command: [:post, 'session/:session_id/goog/cdp/execute']
28
+ send_command: [:post, 'session/:session_id/goog/cdp/execute'],
29
+ get_available_log_types: [:get, 'session/:session_id/se/log/types'],
30
+ get_log: [:post, 'session/:session_id/se/log']
29
31
  }.freeze
30
32
 
31
33
  def commands(command)
@@ -44,6 +46,22 @@ module Selenium
44
46
  execute :set_network_conditions, {}, {network_conditions: conditions}
45
47
  end
46
48
 
49
+ def available_log_types
50
+ types = execute :get_available_log_types
51
+ Array(types).map(&:to_sym)
52
+ end
53
+
54
+ def log(type)
55
+ data = execute :get_log, {}, {type: type.to_s}
56
+
57
+ Array(data).map do |l|
58
+ begin
59
+ LogEntry.new l.fetch('level', 'UNKNOWN'), l.fetch('timestamp'), l.fetch('message')
60
+ rescue KeyError
61
+ next
62
+ end
63
+ end
64
+ end
47
65
  end # Bridge
48
66
  end # Chrome
49
67
  end # WebDriver
@@ -37,25 +37,38 @@ module Selenium
37
37
  class << self
38
38
  attr_reader :default_port, :driver_path, :executable, :missing_text, :shutdown_supported
39
39
 
40
- def chrome(*args)
41
- Chrome::Service.new(*args)
40
+ def chrome(**opts)
41
+ Chrome::Service.new(**opts)
42
42
  end
43
43
 
44
- def firefox(*args)
45
- Firefox::Service.new(*args)
44
+ def firefox(**opts)
45
+ binary_path = Firefox::Binary.path
46
+ args = opts.delete(:args)
47
+ case args
48
+ when Hash
49
+ args[:binary] ||= binary_path
50
+ opts[:args] = args
51
+ when Array
52
+ opts[:args] = ["--binary=#{binary_path}"]
53
+ opts[:args] += args
54
+ else
55
+ opts[:args] = ["--binary=#{binary_path}"]
56
+ end
57
+
58
+ Firefox::Service.new(**opts)
46
59
  end
47
60
 
48
- def ie(*args)
49
- IE::Service.new(*args)
61
+ def ie(**opts)
62
+ IE::Service.new(**opts)
50
63
  end
51
64
  alias_method :internet_explorer, :ie
52
65
 
53
- def edge(*args)
54
- Edge::Service.new(*args)
66
+ def edge(**opts)
67
+ Edge::Service.new(**opts)
55
68
  end
56
69
 
57
- def safari(*args)
58
- Safari::Service.new(*args)
70
+ def safari(**opts)
71
+ Safari::Service.new(**opts)
59
72
  end
60
73
 
61
74
  def driver_path=(path)
@@ -130,8 +130,8 @@ module Selenium
130
130
  @path = Platform.cygwin_path(@path, windows: true) if Platform.cygwin?
131
131
 
132
132
  unless File.file?(@path.to_s)
133
- error = "Could not find Firefox binary (os=#{Platform.os}). "
134
- error << "Make sure Firefox is installed or set the path manually with #{self}.path="
133
+ error = "Could not find Firefox binary (os=#{Platform.os}). " \
134
+ "Make sure Firefox is installed or set the path manually with #{self}.path="
135
135
  raise Error::WebDriverError, error
136
136
  end
137
137
 
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- VERSION = '3.142.2'
22
+ VERSION = '3.142.4'
23
23
  end # WebDriver
24
24
  end # Selenium
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
32
32
  s.require_paths = ['lib']
33
33
 
34
- s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 2.0']
34
+ s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 3.0']
35
35
  s.add_runtime_dependency 'rubyzip', ['~> 1.2', '>= 1.2.2']
36
36
 
37
37
  # childprocess requires ffi on windows but doesn't declare it in its dependencies
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.142.2
4
+ version: 3.142.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-05-11 00:00:00.000000000 Z
13
+ date: 2019-09-02 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: '2.0'
23
+ version: '3.0'
24
24
  name: childprocess
25
25
  prerelease: false
26
26
  type: :runtime
@@ -31,7 +31,7 @@ dependencies:
31
31
  version: '0.5'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '2.0'
34
+ version: '3.0'
35
35
  - !ruby/object:Gem::Dependency
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
@@ -270,7 +270,6 @@ files:
270
270
  - lib/selenium/webdriver/edge/service.rb
271
271
  - lib/selenium/webdriver/firefox.rb
272
272
  - lib/selenium/webdriver/firefox/binary.rb
273
- - lib/selenium/webdriver/firefox/bridge.rb
274
273
  - lib/selenium/webdriver/firefox/driver.rb
275
274
  - lib/selenium/webdriver/firefox/extension.rb
276
275
  - lib/selenium/webdriver/firefox/extension/prefs.json
@@ -293,7 +292,6 @@ files:
293
292
  - lib/selenium/webdriver/remote.rb
294
293
  - lib/selenium/webdriver/remote/bridge.rb
295
294
  - lib/selenium/webdriver/remote/capabilities.rb
296
- - lib/selenium/webdriver/remote/commands.rb
297
295
  - lib/selenium/webdriver/remote/driver.rb
298
296
  - lib/selenium/webdriver/remote/http/common.rb
299
297
  - lib/selenium/webdriver/remote/http/curb.rb
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- module Firefox
23
- module Bridge
24
-
25
- COMMANDS = {
26
- install_addon: [:post, 'session/:session_id/moz/addon/install'],
27
- uninstall_addon: [:post, 'session/:session_id/moz/addon/uninstall']
28
- }.freeze
29
-
30
- def commands(command)
31
- COMMANDS[command] || super
32
- end
33
-
34
- def install_addon(path, temporary)
35
- payload = {path: path}
36
- payload[:temporary] = temporary unless temporary.nil?
37
- execute :install_addon, {}, payload
38
- end
39
-
40
- def uninstall_addon(id)
41
- execute :uninstall_addon, {}, {id: id}
42
- end
43
-
44
- end # Bridge
45
- end # Firefox
46
- end # WebDriver
47
- end # Selenium
@@ -1,156 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- module Remote
23
-
24
- #
25
- # https://w3c.github.io/webdriver/#endpoints
26
- # @api private
27
- #
28
-
29
- class Bridge
30
- COMMANDS = {
31
- status: [:get, 'status'],
32
-
33
- #
34
- # session handling
35
- #
36
-
37
- new_session: [:post, 'session'],
38
- delete_session: [:delete, 'session/:session_id'],
39
-
40
- #
41
- # basic driver
42
- #
43
-
44
- get: [:post, 'session/:session_id/url'],
45
- get_current_url: [:get, 'session/:session_id/url'],
46
- back: [:post, 'session/:session_id/back'],
47
- forward: [:post, 'session/:session_id/forward'],
48
- refresh: [:post, 'session/:session_id/refresh'],
49
- get_title: [:get, 'session/:session_id/title'],
50
-
51
- #
52
- # window and Frame handling
53
- #
54
-
55
- get_window_handle: [:get, 'session/:session_id/window'],
56
- new_window: [:post, 'session/:session_id/window/new'],
57
- close_window: [:delete, 'session/:session_id/window'],
58
- switch_to_window: [:post, 'session/:session_id/window'],
59
- get_window_handles: [:get, 'session/:session_id/window/handles'],
60
- fullscreen_window: [:post, 'session/:session_id/window/fullscreen'],
61
- minimize_window: [:post, 'session/:session_id/window/minimize'],
62
- maximize_window: [:post, 'session/:session_id/window/maximize'],
63
- set_window_size: [:post, 'session/:session_id/window/size'],
64
- get_window_size: [:get, 'session/:session_id/window/size'],
65
- set_window_position: [:post, 'session/:session_id/window/position'],
66
- get_window_position: [:get, 'session/:session_id/window/position'],
67
- set_window_rect: [:post, 'session/:session_id/window/rect'],
68
- get_window_rect: [:get, 'session/:session_id/window/rect'],
69
- switch_to_frame: [:post, 'session/:session_id/frame'],
70
- switch_to_parent_frame: [:post, 'session/:session_id/frame/parent'],
71
-
72
- #
73
- # element
74
- #
75
-
76
- find_element: [:post, 'session/:session_id/element'],
77
- find_elements: [:post, 'session/:session_id/elements'],
78
- find_child_element: [:post, 'session/:session_id/element/:id/element'],
79
- find_child_elements: [:post, 'session/:session_id/element/:id/elements'],
80
- get_active_element: [:get, 'session/:session_id/element/active'],
81
- is_element_selected: [:get, 'session/:session_id/element/:id/selected'],
82
- get_element_attribute: [:get, 'session/:session_id/element/:id/attribute/:name'],
83
- get_element_property: [:get, 'session/:session_id/element/:id/property/:name'],
84
- get_element_css_value: [:get, 'session/:session_id/element/:id/css/:property_name'],
85
- get_element_text: [:get, 'session/:session_id/element/:id/text'],
86
- get_element_tag_name: [:get, 'session/:session_id/element/:id/name'],
87
- get_element_rect: [:get, 'session/:session_id/element/:id/rect'],
88
- is_element_enabled: [:get, 'session/:session_id/element/:id/enabled'],
89
-
90
- #
91
- # document handling
92
- #
93
-
94
- get_page_source: [:get, 'session/:session_id/source'],
95
- execute_script: [:post, 'session/:session_id/execute/sync'],
96
- execute_async_script: [:post, 'session/:session_id/execute/async'],
97
-
98
- #
99
- # cookies
100
- #
101
-
102
- get_all_cookies: [:get, 'session/:session_id/cookie'],
103
- get_cookie: [:get, 'session/:session_id/cookie/:name'],
104
- add_cookie: [:post, 'session/:session_id/cookie'],
105
- delete_cookie: [:delete, 'session/:session_id/cookie/:name'],
106
- delete_all_cookies: [:delete, 'session/:session_id/cookie'],
107
-
108
- #
109
- # timeouts
110
- #
111
-
112
- set_timeout: [:post, 'session/:session_id/timeouts'],
113
-
114
- #
115
- # actions
116
- #
117
-
118
- actions: [:post, 'session/:session_id/actions'],
119
- release_actions: [:delete, 'session/:session_id/actions'],
120
-
121
- #
122
- # Element Operations
123
- #
124
-
125
- element_click: [:post, 'session/:session_id/element/:id/click'],
126
- element_tap: [:post, 'session/:session_id/element/:id/tap'],
127
- element_clear: [:post, 'session/:session_id/element/:id/clear'],
128
- element_send_keys: [:post, 'session/:session_id/element/:id/value'],
129
-
130
- #
131
- # alerts
132
- #
133
-
134
- dismiss_alert: [:post, 'session/:session_id/alert/dismiss'],
135
- accept_alert: [:post, 'session/:session_id/alert/accept'],
136
- get_alert_text: [:get, 'session/:session_id/alert/text'],
137
- send_alert_text: [:post, 'session/:session_id/alert/text'],
138
-
139
- #
140
- # screenshot
141
- #
142
-
143
- take_screenshot: [:get, 'session/:session_id/screenshot'],
144
- take_element_screenshot: [:get, 'session/:session_id/element/:id/screenshot'],
145
-
146
- #
147
- # server extensions
148
- #
149
-
150
- upload_file: [:post, 'session/:session_id/se/file']
151
- }.freeze
152
-
153
- end # Bridge
154
- end # Remote
155
- end # WebDriver
156
- end # Selenium