appium_lib_core 5.0.0.rc1 → 5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc513ad9f9ba5689303763b09a884af18e1a9eb80e78a6e05cf838551905f732
4
- data.tar.gz: 59241d4d8626cf39eeb63a51291f18deca6759bdba95a8e2bb942173e0b5df9e
3
+ metadata.gz: 3eba36b9dee77259cd1a14dd0e03c3a140a0e4bcb014d3d7d277ca9d4c47e011
4
+ data.tar.gz: 511a0a3fa46c55f078185c8d25262ec4c6b5d281be628a2217df1d90fd58d331
5
5
  SHA512:
6
- metadata.gz: 867c6a7bfbdf95243fae3a6292f0349bf9bda1fbb83b44cb7d2e12e8f5e0ecb2f41fb6103aeebdcaaded1024cbb16cd2d758d73bef9bf00697325d75b5c2d027
7
- data.tar.gz: 345771f473fca33668d101f00be374ebb3b345b6795c5392b9955da73bb45588e5589b70ba8c983ce161e35c311b2f18adfd7bac3a8d816ba93863820b05b4f6
6
+ metadata.gz: 47a0de22452cdfa19f9e9aa71dd1b29bedc17c0b431860c7db5bbccb4f50ff83e08db3103caa5ad9e40aaf526518c072ee32563a7139d126222c63d52375048e
7
+ data.tar.gz: 868a920d5221fba2e9e9e3c583a7e5c81cd00bbdf19680ef4795ae23cb71ea773fdce24889935574190a82d888f8ba7f99f1e98e3f86ddd3dab344710598675a
data/CHANGELOG.md CHANGED
@@ -17,6 +17,8 @@ Read `release_notes.md` for commit level details.
17
17
  - Support only W3C spec
18
18
  - Support Ruby 2.5+
19
19
  - Raises `::Appium::Core::Error::ArgumentError` instead of `ArgumentError` for this library specific argument errors
20
+ - Removed `desired_capabilities` from capabilities. Please use `capabilities` instead.
21
+ - `element.ref` returns not only element id. It returns an array like `[:driver, id]`. You should do `_, element_id = element.ref` to get the element id
20
22
 
21
23
  ## [4.7.0] - 2021-07-17
22
24
 
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.add_runtime_dependency 'selenium-webdriver', '4.0.0.rc1'
25
+ spec.add_runtime_dependency 'selenium-webdriver', '4.0.0.rc2'
26
26
  spec.add_runtime_dependency 'faye-websocket', '~> 0.11.0'
27
27
 
28
28
  spec.add_development_dependency 'bundler', '>= 1.14'
@@ -53,7 +53,7 @@ module Appium
53
53
  # Override
54
54
  # Creates session handling both OSS and W3C dialects.
55
55
  #
56
- # @param [::Selenium::WebDriver::Remote::Capabilities, Hash] desired_capabilities A capability
56
+ # @param [::Selenium::WebDriver::Remote::Capabilities, Hash] capabilities A capability
57
57
  # @return [::Selenium::WebDriver::Remote::Capabilities]
58
58
  #
59
59
  # @example
@@ -78,7 +78,7 @@ module Appium
78
78
  @available_commands = ::Appium::Core::Commands::COMMANDS.dup
79
79
 
80
80
  caps = add_appium_prefix(capabilities)
81
- response = execute(:new_session, {}, { capabilities: { firstMatch: [caps] } })
81
+ response = execute(:new_session, {}, { capabilities: { alwaysMatch: caps, firstMatch: [] } })
82
82
 
83
83
  @session_id = response['sessionId']
84
84
  raise ::Selenium::WebDriver::Error::WebDriverError, 'no sessionId in returned payload' unless @session_id
@@ -22,6 +22,13 @@ module Appium
22
22
  # @return [::Selenium::WebDriver::Remote::Capabilities] Return instance of Appium::Core::Base::Capabilities
23
23
  # inherited ::Selenium::WebDriver::Remote::Capabilities
24
24
  def self.create_capabilities(opts_caps = {})
25
+ # TODO: Move to 'Options' way instead of 'Capabilities'.
26
+ # Selenium 5 will have Options instead of 'Capabilities'.
27
+ # https://github.com/SeleniumHQ/selenium/blob/trunk/rb/lib/selenium/webdriver/common/options.rb
28
+ # Then, Ruby client also shoud move to the Options way.
29
+ # Appium's capabilities could change by depending on Appium versions. So it does not have
30
+ # standard options like chrome and firefox etc. So, the implementation should differ from
31
+ # other browsers. But here should inherit `Options` to follow Selenium.
25
32
  ::Selenium::WebDriver::Remote::Capabilities.new(opts_caps)
26
33
  end
27
34
  end
@@ -57,23 +57,7 @@ module Appium
57
57
  # @return [::Appium::Core::Base::Bridge]
58
58
  #
59
59
  def create_bridge(**opts)
60
- caps = opts.delete(:capabilities)
61
- # NOTE: This is deprecated
62
- cap_array = caps.is_a?(Hash) ? [caps] : Array(caps)
63
-
64
- desired_capabilities = opts.delete(:desired_capabilities)
65
- if desired_capabilities
66
- if desired_capabilities.is_a?(Hash)
67
- desired_capabilities = ::Selenium::WebDriver::Remote::Capabilities(desired_capabilities)
68
- end
69
- cap_array << desired_capabilities
70
- end
71
-
72
- options = opts.delete(:options)
73
- cap_array << options if options
74
-
75
- capabilities = generate_capabilities(cap_array)
76
-
60
+ capabilities = opts.delete(:capabilities)
77
61
  bridge_opts = { http_client: opts.delete(:http_client), url: opts.delete(:url) }
78
62
  raise ::Appium::Core::Error::ArgumentError, "Unable to create a driver with parameters: #{opts}" unless opts.empty?
79
63
 
@@ -187,8 +187,6 @@ module Appium
187
187
  # @option opts [Hash] :caps Appium capabilities.
188
188
  # @option opts [Hash] :capabilities The same as :caps.
189
189
  # This param is for compatibility with Selenium WebDriver format
190
- # @option opts [Hash] :desired_capabilities The same as :caps.
191
- # This param is for compatibility with Selenium WebDriver format
192
190
  # @option opts [Appium::Core::Options] :appium_lib Capabilities affect only ruby client
193
191
  # @option opts [String] :url The same as :custom_url in :appium_lib.
194
192
  # This param is for compatibility with Selenium WebDriver format
@@ -199,10 +197,8 @@ module Appium
199
197
  #
200
198
  # # format 1
201
199
  # @core = Appium::Core.for caps: {...}, appium_lib: {...}
202
- # # format 2. 'capabilities:' or 'desired_capabilities:' is also available instead of 'caps:'.
200
+ # # format 2. 'capabilities:' is also available instead of 'caps:'.
203
201
  # @core = Appium::Core.for url: "http://127.0.0.1:8080/wd/hub", capabilities: {...}, appium_lib: {...}
204
- # # format 3. 'appium_lib: {...}' can be blank
205
- # @core = Appium::Core.for url: "http://127.0.0.1:8080/wd/hub", desired_capabilities: {...}
206
202
  #
207
203
  #
208
204
  # require 'rubygems'
@@ -230,7 +226,7 @@ module Appium
230
226
  # @core.start_driver # Connect to 'http://127.0.0.1:8080/wd/hub' because of 'port: 8080'
231
227
  #
232
228
  # # Start iOS driver with .zip file over HTTP
233
- # # 'desired_capabilities:' or 'capabilities:' is also available instead of 'caps:'. Either is fine.
229
+ # # 'capabilities:' is also available instead of 'caps:'. Either is fine.
234
230
  # opts = {
235
231
  # capabilities: {
236
232
  # platformName: :ios,
@@ -254,7 +250,7 @@ module Appium
254
250
  # # Start iOS driver as another format. 'url' is available like below
255
251
  # opts = {
256
252
  # url: "http://custom-host:8080/wd/hub.com",
257
- # desired_capabilities: {
253
+ # capabilities: {
258
254
  # platformName: :ios,
259
255
  # platformVersion: '11.0',
260
256
  # deviceName: 'iPhone Simulator',
@@ -368,8 +364,8 @@ module Appium
368
364
 
369
365
  begin
370
366
  @driver = ::Appium::Core::Base::Driver.new(listener: @listener,
371
- http_client: @http_client,
372
- desired_capabilities: @caps,
367
+ http_client: @http_client,
368
+ capabilities: @caps, # ::Selenium::WebDriver::Remote::Capabilities
373
369
  url: @custom_url)
374
370
 
375
371
  if @direct_connect
@@ -567,10 +563,7 @@ module Appium
567
563
  def validate_keys(opts)
568
564
  flatten_ops = flatten_hash_keys(opts)
569
565
 
570
- # FIXME: Remove 'desired_capabilities' in the next major Selenium update
571
- unless opts.member?(:caps) || opts.member?(:capabilities) || opts.member?(:desired_capabilities)
572
- raise Error::NoCapabilityError
573
- end
566
+ raise Error::NoCapabilityError unless opts.member?(:caps) || opts.member?(:capabilities)
574
567
 
575
568
  if !opts.member?(:appium_lib) && flatten_ops.member?(:appium_lib)
576
569
  raise Error::CapabilityStructureError, 'Please check the value of appium_lib in the capability'
@@ -591,8 +584,7 @@ module Appium
591
584
 
592
585
  # @private
593
586
  def get_caps(opts)
594
- # FIXME: Remove 'desired_capabilities' in the next major Selenium update
595
- Core::Base::Capabilities.create_capabilities(opts[:caps] || opts[:capabilities] || opts[:desired_capabilities] || {})
587
+ Core::Base::Capabilities.create_capabilities(opts[:caps] || opts[:capabilities] || {})
596
588
  end
597
589
 
598
590
  # @private
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '5.0.0.rc1' unless defined? ::Appium::Core::VERSION
18
- DATE = '2021-09-09' unless defined? ::Appium::Core::DATE
17
+ VERSION = '5.0.0.rc2' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2021-10-01' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0.rc1
4
+ version: 5.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-09 00:00:00.000000000 Z
11
+ date: 2021-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.0.rc1
19
+ version: 4.0.0.rc2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 4.0.0.rc1
26
+ version: 4.0.0.rc2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faye-websocket
29
29
  requirement: !ruby/object:Gem::Requirement