appium_lib_core 5.0.0.rc1 → 5.0.0.rc5
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 +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
|
- - ">"
|