appium_lib_core 5.0.0.rc1 → 5.0.0.rc5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/unittest.yml +2 -3
- data/CHANGELOG.md +18 -5
- data/README.md +5 -5
- data/appium_lib_core.gemspec +2 -2
- data/docs/mobile_command.md +1 -2
- data/lib/appium_lib_core/common/base/bridge.rb +4 -6
- data/lib/appium_lib_core/common/base/capabilities.rb +7 -0
- data/lib/appium_lib_core/common/base/driver.rb +2 -35
- data/lib/appium_lib_core/common/base/screenshot.rb +2 -3
- data/lib/appium_lib_core/common/touch_action/touch_actions.rb +1 -4
- data/lib/appium_lib_core/driver.rb +10 -33
- data/lib/appium_lib_core/element.rb +9 -0
- data/lib/appium_lib_core/version.rb +2 -2
- data/release_notes.md +10 -0
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19a2c4c9f752e5f2e4287ce8b0d53bc428bafaa997b58c40bc0b796b878eadeb
|
4
|
+
data.tar.gz: 451e46bc56fa768879ab680520dff4ec137455ca020e1176f3022160d1a46009
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9e155e17e026514e12657489569b17b389d62cb9d7cd79e8a753e12b37571d4a9d3a3f28227b935b2d3d101747a7ce66d28ff7eb08f6c9cfb7c1c94ca7f3f03
|
7
|
+
data.tar.gz: 13e2620a48fe753b5647a0ffcb6bf370f54796aa3b87ca34522659c219474804dfa7843394307ad84b36dc377a10d2bd5bec782467354abb252e945c27cdd748
|
@@ -11,7 +11,7 @@ jobs:
|
|
11
11
|
strategy:
|
12
12
|
fail-fast: false
|
13
13
|
matrix:
|
14
|
-
ruby: [2.
|
14
|
+
ruby: [2.6, 2.7, 3.0]
|
15
15
|
|
16
16
|
runs-on: ubuntu-latest
|
17
17
|
|
@@ -37,8 +37,7 @@ jobs:
|
|
37
37
|
strategy:
|
38
38
|
fail-fast: false
|
39
39
|
matrix:
|
40
|
-
|
41
|
-
ruby: [2.5, 2.6]
|
40
|
+
ruby: [2.6, 2.7, 3.0]
|
42
41
|
|
43
42
|
runs-on: windows-latest
|
44
43
|
|
data/CHANGELOG.md
CHANGED
@@ -5,19 +5,32 @@ Read `release_notes.md` for commit level details.
|
|
5
5
|
## [Unreleased]
|
6
6
|
|
7
7
|
### Enhancements
|
8
|
-
- Allow to override an existing method by `Appium::Core::Base::Driver#add_command` since Appium drivers/plugins allow to override them
|
9
8
|
|
10
9
|
### Bug fixes
|
11
10
|
|
12
11
|
### Deprecations
|
13
12
|
|
14
|
-
## [5.0.0
|
13
|
+
## [5.0.0]
|
14
|
+
|
15
|
+
### Enhancements
|
15
16
|
|
16
|
-
- Update base selenium webdriver version to `4.0.0
|
17
|
-
- Support only W3C spec
|
18
|
-
- Support Ruby 2.
|
17
|
+
- Update base selenium webdriver version to `4.0.0`
|
18
|
+
- Support only W3C spec as following Selenium v4 client
|
19
|
+
- Support Ruby 2.6+
|
20
|
+
- `element.id` returns the element id instead of `element.ref`. `element.ref` now returns an array.
|
21
|
+
- Removed `desired_capabilities` as capabilities for `Appium::Core#for`. Please use `capabilities` key name instead
|
22
|
+
- Removals that already had _duplication_ mark
|
23
|
+
- Removed `driver#screenshot`. Please use `driver#save_screenshot` instead
|
24
|
+
- Removed `driver#send_keys` to send keys to an active element. Please use `driver.action.send_keys('happy testing').perform` instead
|
25
|
+
- Removed `forceMjsonwp` to send only MJSONWP capabilities since Selenium cleint v4 no longer supports MJSONWP
|
26
|
+
- No longer set default `timeouts` as `0`. ruby_lib_core calls `/timeouts` endpoint only when `appium_lib: { wait: 5 }` is provided explicitly
|
19
27
|
- Raises `::Appium::Core::Error::ArgumentError` instead of `ArgumentError` for this library specific argument errors
|
20
28
|
|
29
|
+
## [4.7.1] - 2021-09-26
|
30
|
+
|
31
|
+
### Enhancements
|
32
|
+
- Allow to override an existing method by `Appium::Core::Base::Driver#add_command` since Appium drivers/plugins allow to override them
|
33
|
+
|
21
34
|
## [4.7.0] - 2021-07-17
|
22
35
|
|
23
36
|
### Enhancements
|
data/README.md
CHANGED
@@ -79,7 +79,7 @@ $ PARALLEL=1 bundle exec parallel_test test/functional/ios -n 2
|
|
79
79
|
|
80
80
|
- Runs on CI environment (on Azure)
|
81
81
|
- Non `IGNORE_VERSION_SKIP` or `IGNORE_VERSION_SKIP=true` runs all tests ignoring `skip` them by Appium versions
|
82
|
-
- `IGNORE_VERSION_SKIP=false` skips the following tests if the Appium version is lower than the requirement
|
82
|
+
- `IGNORE_VERSION_SKIP=false` skips the following tests if the Appium version is lower than the requirement
|
83
83
|
|
84
84
|
```
|
85
85
|
$ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android
|
@@ -93,9 +93,9 @@ $ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android
|
|
93
93
|
```ruby
|
94
94
|
require 'rubygems'
|
95
95
|
require 'appium_lib_core'
|
96
|
-
|
96
|
+
|
97
97
|
opts = {
|
98
|
-
|
98
|
+
capabilities: { # or { caps: {....} }
|
99
99
|
platformName: :ios,
|
100
100
|
platformVersion: '11.0',
|
101
101
|
deviceName: 'iPhone Simulator',
|
@@ -108,7 +108,7 @@ $ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android
|
|
108
108
|
}
|
109
109
|
@core = Appium::Core.for(opts) # create a core driver with `opts`
|
110
110
|
@driver = @core.start_driver
|
111
|
-
|
111
|
+
|
112
112
|
# Launch iPhone Simulator and `MyiOS.app`
|
113
113
|
@driver.find_element(:accessibility_id, 'some accessibility') # find an element
|
114
114
|
```
|
@@ -116,7 +116,7 @@ $ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android
|
|
116
116
|
```bash
|
117
117
|
# shell 1
|
118
118
|
$ appium --log-level warn:error # show only warning and error logs
|
119
|
-
|
119
|
+
|
120
120
|
# shell 2
|
121
121
|
$ ruby test.rb
|
122
122
|
```
|
data/appium_lib_core.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'appium_lib_core/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.required_ruby_version = '>= 2.
|
7
|
+
spec.required_ruby_version = '>= 2.6'
|
8
8
|
|
9
9
|
spec.name = 'appium_lib_core'
|
10
10
|
spec.version = Appium::Core::VERSION
|
@@ -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
|
25
|
+
spec.add_runtime_dependency 'selenium-webdriver', '~> 4.0.0'
|
26
26
|
spec.add_runtime_dependency 'faye-websocket', '~> 0.11.0'
|
27
27
|
|
28
28
|
spec.add_development_dependency 'bundler', '>= 1.14'
|
data/docs/mobile_command.md
CHANGED
@@ -28,8 +28,7 @@ To handle it, we would recommend you to handle the error based on the error mess
|
|
28
28
|
|
29
29
|
```ruby
|
30
30
|
error = assert_raises ::Selenium::WebDriver::Error::UnknownError do
|
31
|
-
|
32
|
-
@driver.execute_script 'mobile: scrollToPage', { element: element_id, scrollToPage: -100 }
|
31
|
+
@driver.execute_script 'mobile: scrollToPage', { element: el.id, scrollToPage: -100 }
|
33
32
|
end
|
34
33
|
assert error.message.include? 'be a non-negative integer'
|
35
34
|
```
|
@@ -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]
|
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: [
|
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
|
@@ -207,8 +207,7 @@ module Appium
|
|
207
207
|
# For W3C
|
208
208
|
# https://github.com/SeleniumHQ/selenium/commit/b618499adcc3a9f667590652c5757c0caa703289
|
209
209
|
# execute_atom :isDisplayed, element
|
210
|
-
|
211
|
-
execute :is_element_displayed, id: element_id
|
210
|
+
execute :is_element_displayed, id: element.id
|
212
211
|
end
|
213
212
|
|
214
213
|
# For Appium
|
@@ -216,8 +215,7 @@ module Appium
|
|
216
215
|
def element_attribute(element, name)
|
217
216
|
# For W3C in Selenium Client
|
218
217
|
# execute_atom :getAttribute, element, name
|
219
|
-
|
220
|
-
execute :get_element_attribute, id: element_id, name: name
|
218
|
+
execute :get_element_attribute, id: element.id, name: name
|
221
219
|
end
|
222
220
|
|
223
221
|
# For Appium
|
@@ -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
|
-
|
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
|
|
@@ -175,8 +159,7 @@ module Appium
|
|
175
159
|
# # ':session_id' in the given url is replaced with current 'session id'.
|
176
160
|
# # ':id' in the given url is replaced with the given 'element_id'.
|
177
161
|
# e = @driver.find_element :accessibility_id, 'an element'
|
178
|
-
#
|
179
|
-
# @driver.test_action_command(element_id, 'action')
|
162
|
+
# @driver.test_action_command(e.id, 'action')
|
180
163
|
#
|
181
164
|
def add_command(method:, url:, name:, &block)
|
182
165
|
unless AVAILABLE_METHODS.include? method
|
@@ -255,22 +238,6 @@ module Appium
|
|
255
238
|
end
|
256
239
|
alias is_keyboard_shown keyboard_shown?
|
257
240
|
|
258
|
-
# [DEPRECATION]
|
259
|
-
# Send keys for a current active element
|
260
|
-
# @param [String] key Input text
|
261
|
-
#
|
262
|
-
# @example
|
263
|
-
#
|
264
|
-
# @driver.send_keys 'happy testing!'
|
265
|
-
#
|
266
|
-
def send_keys(*key)
|
267
|
-
::Appium::Logger.warn(
|
268
|
-
'[DEPRECATION] Driver#send_keys is deprecated in W3C spec. Use driver.action.<command>.perform instead'
|
269
|
-
)
|
270
|
-
@bridge.send_keys_to_active_element(key)
|
271
|
-
end
|
272
|
-
alias type send_keys
|
273
|
-
|
274
241
|
# Returns an instance of DriverSettings to call get/update.
|
275
242
|
#
|
276
243
|
# @example
|
@@ -82,12 +82,11 @@ module Appium
|
|
82
82
|
# @@driver.element_screenshot_as element, :base64 #=> "iVBORw0KGgoAAAANSUhEUgAABDgAAAB+CAIAAABOPDa6AAAAAX"
|
83
83
|
#
|
84
84
|
def element_screenshot_as(element, format)
|
85
|
-
_, element_id = element.ref
|
86
85
|
case format
|
87
86
|
when :base64
|
88
|
-
bridge.element_screenshot
|
87
|
+
bridge.element_screenshot element.id
|
89
88
|
when :png
|
90
|
-
bridge.element_screenshot(
|
89
|
+
bridge.element_screenshot(element.id).unpack('m')[0]
|
91
90
|
else
|
92
91
|
raise Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
|
93
92
|
end
|
@@ -195,10 +195,7 @@ module Appium
|
|
195
195
|
end
|
196
196
|
|
197
197
|
def args_with_ele_ref(args)
|
198
|
-
if args.key? :element
|
199
|
-
_, element_id = args[:element].ref
|
200
|
-
args[:element] = element_id
|
201
|
-
end
|
198
|
+
args[:element] = args[:element].id if args.key? :element
|
202
199
|
args
|
203
200
|
end
|
204
201
|
end # class TouchAction
|
@@ -40,7 +40,7 @@ module Appium
|
|
40
40
|
|
41
41
|
def initialize(appium_lib_opts)
|
42
42
|
@custom_url = appium_lib_opts.fetch :server_url, nil
|
43
|
-
@default_wait = appium_lib_opts.fetch :wait,
|
43
|
+
@default_wait = appium_lib_opts.fetch :wait, nil
|
44
44
|
@enable_idempotency_header = appium_lib_opts.fetch :enable_idempotency_header, true
|
45
45
|
|
46
46
|
# bump current session id into a particular file
|
@@ -135,11 +135,9 @@ module Appium
|
|
135
135
|
attr_reader :export_session_path
|
136
136
|
|
137
137
|
# Default wait time for elements to appear in Appium server side.
|
138
|
-
# Defaults to {::Appium::Core::Driver::DEFAULT_IMPLICIT_WAIT}.<br>
|
139
138
|
# Provide <code>{ appium_lib: { wait: 30 } }</code> to {::Appium::Core.for}
|
140
139
|
# @return [Integer]
|
141
140
|
attr_reader :default_wait
|
142
|
-
DEFAULT_IMPLICIT_WAIT = 0
|
143
141
|
|
144
142
|
# Appium's server port. 4723 is by default. Defaults to {::Appium::Core::Driver::DEFAULT_APPIUM_PORT}.<br>
|
145
143
|
# Provide <code>{ appium_lib: { port: 8080 } }</code> to {::Appium::Core.for}.
|
@@ -187,8 +185,6 @@ module Appium
|
|
187
185
|
# @option opts [Hash] :caps Appium capabilities.
|
188
186
|
# @option opts [Hash] :capabilities The same as :caps.
|
189
187
|
# 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
188
|
# @option opts [Appium::Core::Options] :appium_lib Capabilities affect only ruby client
|
193
189
|
# @option opts [String] :url The same as :custom_url in :appium_lib.
|
194
190
|
# This param is for compatibility with Selenium WebDriver format
|
@@ -199,10 +195,8 @@ module Appium
|
|
199
195
|
#
|
200
196
|
# # format 1
|
201
197
|
# @core = Appium::Core.for caps: {...}, appium_lib: {...}
|
202
|
-
# # format 2. 'capabilities:'
|
198
|
+
# # format 2. 'capabilities:' is also available instead of 'caps:'.
|
203
199
|
# @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
200
|
#
|
207
201
|
#
|
208
202
|
# require 'rubygems'
|
@@ -230,7 +224,7 @@ module Appium
|
|
230
224
|
# @core.start_driver # Connect to 'http://127.0.0.1:8080/wd/hub' because of 'port: 8080'
|
231
225
|
#
|
232
226
|
# # Start iOS driver with .zip file over HTTP
|
233
|
-
# #
|
227
|
+
# # 'capabilities:' is also available instead of 'caps:'. Either is fine.
|
234
228
|
# opts = {
|
235
229
|
# capabilities: {
|
236
230
|
# platformName: :ios,
|
@@ -254,7 +248,7 @@ module Appium
|
|
254
248
|
# # Start iOS driver as another format. 'url' is available like below
|
255
249
|
# opts = {
|
256
250
|
# url: "http://custom-host:8080/wd/hub.com",
|
257
|
-
#
|
251
|
+
# capabilities: {
|
258
252
|
# platformName: :ios,
|
259
253
|
# platformVersion: '11.0',
|
260
254
|
# deviceName: 'iPhone Simulator',
|
@@ -368,8 +362,8 @@ module Appium
|
|
368
362
|
|
369
363
|
begin
|
370
364
|
@driver = ::Appium::Core::Base::Driver.new(listener: @listener,
|
371
|
-
|
372
|
-
|
365
|
+
http_client: @http_client,
|
366
|
+
capabilities: @caps, # ::Selenium::WebDriver::Remote::Capabilities
|
373
367
|
url: @custom_url)
|
374
368
|
|
375
369
|
if @direct_connect
|
@@ -411,6 +405,8 @@ module Appium
|
|
411
405
|
|
412
406
|
# Ignore setting default wait if the target driver has no implementation
|
413
407
|
def set_implicit_wait_by_default(wait)
|
408
|
+
return if @default_wait.nil?
|
409
|
+
|
414
410
|
@driver.manage.timeouts.implicit_wait = wait
|
415
411
|
rescue ::Selenium::WebDriver::Error::UnknownError => e
|
416
412
|
unless e.message.include?('The operation requested is not yet implemented')
|
@@ -480,21 +476,6 @@ module Appium
|
|
480
476
|
p_version.split('.').map(&:to_i)
|
481
477
|
end
|
482
478
|
|
483
|
-
# Takes a png screenshot and saves to the target path.
|
484
|
-
#
|
485
|
-
# @param png_save_path [String] the full path to save the png
|
486
|
-
# @return [File]
|
487
|
-
#
|
488
|
-
# @example
|
489
|
-
#
|
490
|
-
# @core.screenshot '/tmp/hi.png' #=> nil
|
491
|
-
# # same as '@driver.save_screenshot png_save_path'
|
492
|
-
#
|
493
|
-
def screenshot(png_save_path)
|
494
|
-
::Appium::Logger.warn '[DEPRECATION] screenshot will be removed. Please use driver.save_screenshot instead.'
|
495
|
-
@driver.save_screenshot png_save_path
|
496
|
-
end
|
497
|
-
|
498
479
|
private
|
499
480
|
|
500
481
|
# @private
|
@@ -567,10 +548,7 @@ module Appium
|
|
567
548
|
def validate_keys(opts)
|
568
549
|
flatten_ops = flatten_hash_keys(opts)
|
569
550
|
|
570
|
-
|
571
|
-
unless opts.member?(:caps) || opts.member?(:capabilities) || opts.member?(:desired_capabilities)
|
572
|
-
raise Error::NoCapabilityError
|
573
|
-
end
|
551
|
+
raise Error::NoCapabilityError unless opts.member?(:caps) || opts.member?(:capabilities)
|
574
552
|
|
575
553
|
if !opts.member?(:appium_lib) && flatten_ops.member?(:appium_lib)
|
576
554
|
raise Error::CapabilityStructureError, 'Please check the value of appium_lib in the capability'
|
@@ -591,8 +569,7 @@ module Appium
|
|
591
569
|
|
592
570
|
# @private
|
593
571
|
def get_caps(opts)
|
594
|
-
|
595
|
-
Core::Base::Capabilities.create_capabilities(opts[:caps] || opts[:capabilities] || opts[:desired_capabilities] || {})
|
572
|
+
Core::Base::Capabilities.create_capabilities(opts[:caps] || opts[:capabilities] || {})
|
596
573
|
end
|
597
574
|
|
598
575
|
# @private
|
@@ -20,6 +20,15 @@ module Appium
|
|
20
20
|
include ::Appium::Core::Base::SearchContext
|
21
21
|
include ::Appium::Core::Base::TakesScreenshot
|
22
22
|
|
23
|
+
# Retuns the element id.
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
# @example
|
27
|
+
# e = @driver.find_element :accessibility_id, 'something'
|
28
|
+
# e.id
|
29
|
+
#
|
30
|
+
attr_reader :id
|
31
|
+
|
23
32
|
# Returns the value of attributes like below. Read each platform to know more details.
|
24
33
|
#
|
25
34
|
# uiautomator2: https://github.com/appium/appium-uiautomator2-server/blob/203cc7e57ce477f3cff5d95b135d1b3450a6033a/app/src/main/java/io/appium/uiautomator2/utils/Attribute.java#L19
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
module Appium
|
16
16
|
module Core
|
17
|
-
VERSION = '5.0.0.
|
18
|
-
DATE = '2021-
|
17
|
+
VERSION = '5.0.0.rc5' unless defined? ::Appium::Core::VERSION
|
18
|
+
DATE = '2021-10-15' unless defined? ::Appium::Core::DATE
|
19
19
|
end
|
20
20
|
end
|
data/release_notes.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
#### v4.7.1 2021-09-26
|
2
|
+
|
3
|
+
- [cdd8906](https://github.com/appium/ruby_lib_core/commit/cdd890662585aa5051912d20d90ec3c3866ad8b1) Release 4.7.1
|
4
|
+
- [059b092](https://github.com/appium/ruby_lib_core/commit/059b0920becd60d691b0b4fac05cc0d96bcc59c7) ci: tweak brew install
|
5
|
+
- [fb32697](https://github.com/appium/ruby_lib_core/commit/fb32697d5ee7cf4ea4367aa9f9bf4458723d6fce) feat: allow to override an existing method by add_command (#330)
|
6
|
+
- [cbf7f1f](https://github.com/appium/ruby_lib_core/commit/cbf7f1fc2ce6bb8833e2a7324446d79cbc848834) chore(deps-dev): update webmock requirement from ~> 3.13.0 to ~> 3.14.0 (#329)
|
7
|
+
- [beefb17](https://github.com/appium/ruby_lib_core/commit/beefb179ac25e9337bf2badaf4eb0c4cfc5b1e45) chore(deps-dev): update rubocop requirement from = 1.12.0 to = 1.12.1 (#322)
|
8
|
+
- [3438b48](https://github.com/appium/ruby_lib_core/commit/3438b481523ec978d06bc243cd42eee8dc00356f) docs: tweak docstring
|
9
|
+
|
10
|
+
|
1
11
|
#### v4.7.0 2021-07-17
|
2
12
|
|
3
13
|
- [0059974](https://github.com/appium/ruby_lib_core/commit/0059974b0b1d79a822db84d8b0169e8393e00ef9) Release 4.7.0
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appium_lib_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.0.
|
4
|
+
version: 5.0.0.rc5
|
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-
|
11
|
+
date: 2021-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selenium-webdriver
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.0.0
|
19
|
+
version: 4.0.0
|
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
|
26
|
+
version: 4.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faye-websocket
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -333,7 +333,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
333
333
|
requirements:
|
334
334
|
- - ">="
|
335
335
|
- !ruby/object:Gem::Version
|
336
|
-
version: '2.
|
336
|
+
version: '2.6'
|
337
337
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
338
|
requirements:
|
339
339
|
- - ">"
|