selenium-webdriver 4.0.0.rc1 → 4.0.0.rc2

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 (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +33 -0
  3. data/lib/selenium/webdriver/atoms/getAttribute.js +25 -25
  4. data/lib/selenium/webdriver/chrome/driver.rb +3 -0
  5. data/lib/selenium/webdriver/chrome/features.rb +44 -4
  6. data/lib/selenium/webdriver/chrome/options.rb +24 -1
  7. data/lib/selenium/webdriver/common/driver.rb +2 -0
  8. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +51 -0
  9. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +77 -0
  10. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +45 -0
  11. data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +38 -0
  12. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +8 -0
  13. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +87 -18
  14. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +11 -11
  15. data/lib/selenium/webdriver/common/driver_extensions/prints_page.rb +1 -1
  16. data/lib/selenium/webdriver/common/log_entry.rb +2 -2
  17. data/lib/selenium/webdriver/common/manager.rb +3 -13
  18. data/lib/selenium/webdriver/common/options.rb +13 -5
  19. data/lib/selenium/webdriver/common/target_locator.rb +28 -0
  20. data/lib/selenium/webdriver/common/window.rb +0 -4
  21. data/lib/selenium/webdriver/common.rb +4 -0
  22. data/lib/selenium/webdriver/devtools/request.rb +27 -17
  23. data/lib/selenium/webdriver/devtools/response.rb +66 -0
  24. data/lib/selenium/webdriver/devtools.rb +49 -12
  25. data/lib/selenium/webdriver/edge/features.rb +5 -0
  26. data/lib/selenium/webdriver/firefox/driver.rb +5 -0
  27. data/lib/selenium/webdriver/firefox/features.rb +14 -0
  28. data/lib/selenium/webdriver/firefox/options.rb +24 -1
  29. data/lib/selenium/webdriver/firefox.rb +0 -1
  30. data/lib/selenium/webdriver/remote/bridge.rb +1 -1
  31. data/lib/selenium/webdriver/remote/capabilities.rb +1 -0
  32. data/lib/selenium/webdriver/remote/driver.rb +2 -1
  33. data/lib/selenium/webdriver/safari/driver.rb +1 -1
  34. data/lib/selenium/webdriver/safari/options.rb +7 -0
  35. data/lib/selenium/webdriver/version.rb +1 -1
  36. data/lib/selenium/webdriver.rb +1 -0
  37. metadata +7 -2
@@ -29,7 +29,11 @@ module Selenium
29
29
  CAPABILITIES = {binary: 'binary',
30
30
  args: 'args',
31
31
  log: 'log',
32
- prefs: 'prefs'}.freeze
32
+ prefs: 'prefs',
33
+ android_package: 'androidPackage',
34
+ android_activity: 'androidActivity',
35
+ android_device_serial: 'androidDeviceSerial',
36
+ android_intent_arguments: 'androidIntentArguments'}.freeze
33
37
  BROWSER = 'firefox'
34
38
 
35
39
  # NOTE: special handling of 'profile' to validate when set instead of when used
@@ -131,6 +135,25 @@ module Selenium
131
135
  @options[:log] = {level: level}
132
136
  end
133
137
 
138
+ #
139
+ # Enables mobile browser use on Android.
140
+ #
141
+ # @see https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/firefoxOptions#android
142
+ #
143
+ # @param [String] package The package name of the Chrome or WebView app.
144
+ # @param [String] serial_number The serial number of the device on which to launch the application.
145
+ # If not specified and multiple devices are attached, an error will be returned.
146
+ # @param [String] activity The fully qualified class name of the activity to be launched.
147
+ # @param [Array] intent_arguments Arguments to launch the intent with.
148
+ #
149
+
150
+ def enable_android(package: 'org.mozilla.firefox', serial_number: nil, activity: nil, intent_arguments: nil)
151
+ @options[:android_package] = package
152
+ @options[:android_activity] = activity unless activity.nil?
153
+ @options[:android_device_serial] = serial_number unless serial_number.nil?
154
+ @options[:android_intent_arguments] = intent_arguments unless intent_arguments.nil?
155
+ end
156
+
134
157
  private
135
158
 
136
159
  def process_browser_options(browser_options)
@@ -33,7 +33,6 @@ module Selenium
33
33
  autoload :Service, 'selenium/webdriver/firefox/service'
34
34
 
35
35
  DEFAULT_PORT = 7055
36
- DEFAULT_ENABLE_NATIVE_EVENTS = Platform.os == :windows
37
36
  DEFAULT_SECURE_SSL = false
38
37
  DEFAULT_ASSUME_UNTRUSTED_ISSUER = true
39
38
  DEFAULT_LOAD_NO_FOCUS_LIB = false
@@ -25,7 +25,7 @@ module Selenium
25
25
 
26
26
  PORT = 4444
27
27
 
28
- attr_accessor :context, :http, :file_detector
28
+ attr_accessor :http, :file_detector
29
29
  attr_reader :capabilities
30
30
 
31
31
  #
@@ -39,6 +39,7 @@ module Selenium
39
39
  :timeouts,
40
40
  :unhandled_prompt_behavior,
41
41
  :strict_file_interactability,
42
+ :web_socket_url,
42
43
 
43
44
  # remote-specific (webdriver.remote.sessionid)
44
45
  :remote_session_id
@@ -52,7 +52,8 @@ module Selenium
52
52
  end
53
53
 
54
54
  def devtools_version
55
- capabilities['se:cdpVersion'].split('.').first
55
+ capabilities['se:cdpVersion']&.split('.')&.first ||
56
+ raise(Error::WebDriverError, "DevTools is not supported by the Remote Server")
56
57
  end
57
58
  end # Driver
58
59
  end # Remote
@@ -28,7 +28,7 @@ module Selenium
28
28
 
29
29
  class Driver < WebDriver::Driver
30
30
  EXTENSIONS = [DriverExtensions::HasDebugger,
31
- DriverExtensions::HasPermissions,
31
+ DriverExtensions::HasApplePermissions,
32
32
  DriverExtensions::HasWebStorage].freeze
33
33
 
34
34
  def browser
@@ -28,6 +28,13 @@ module Selenium
28
28
  automatic_profiling: 'safari:automaticProfiling'}.freeze
29
29
  BROWSER = 'safari'
30
30
 
31
+ def add_option(name, value = nil)
32
+ key = name.is_a?(Hash) ? name.keys.first : name
33
+ raise ArgumentError, 'Safari does not support options that are not namespaced' unless key.to_s.include?(':')
34
+
35
+ super
36
+ end
37
+
31
38
  end # Options
32
39
  end # Safari
33
40
  end # WebDriver
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- VERSION = '4.0.0.rc1'
22
+ VERSION = '4.0.0.rc2'
23
23
  end # WebDriver
24
24
  end # Selenium
@@ -23,6 +23,7 @@ require 'fileutils'
23
23
  require 'date'
24
24
  require 'json'
25
25
  require 'set'
26
+ require 'uri'
26
27
 
27
28
  require 'selenium/webdriver/atoms'
28
29
  require 'selenium/webdriver/common'
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.rc1
4
+ version: 4.0.0.rc2
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: 2021-09-01 00:00:00.000000000 Z
13
+ date: 2021-09-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: childprocess
@@ -252,10 +252,14 @@ files:
252
252
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
253
253
  - lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
254
254
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
255
+ - lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
255
256
  - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
257
+ - lib/selenium/webdriver/common/driver_extensions/has_casting.rb
256
258
  - lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
259
+ - lib/selenium/webdriver/common/driver_extensions/has_context.rb
257
260
  - lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
258
261
  - lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
262
+ - lib/selenium/webdriver/common/driver_extensions/has_launching.rb
259
263
  - lib/selenium/webdriver/common/driver_extensions/has_location.rb
260
264
  - lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
261
265
  - lib/selenium/webdriver/common/driver_extensions/has_logs.rb
@@ -312,6 +316,7 @@ files:
312
316
  - lib/selenium/webdriver/devtools/mutation_event.rb
313
317
  - lib/selenium/webdriver/devtools/pinned_script.rb
314
318
  - lib/selenium/webdriver/devtools/request.rb
319
+ - lib/selenium/webdriver/devtools/response.rb
315
320
  - lib/selenium/webdriver/edge.rb
316
321
  - lib/selenium/webdriver/edge/driver.rb
317
322
  - lib/selenium/webdriver/edge/features.rb