appium_lib_core 9.5.1 → 10.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -4
- data/Gemfile +2 -2
- data/README.md +2 -2
- data/lib/appium_lib_core/android/device.rb +2 -5
- data/lib/appium_lib_core/common/base/bridge.rb +3 -3
- data/lib/appium_lib_core/common/base/driver.rb +6 -6
- data/lib/appium_lib_core/common/base/has_location.rb +0 -1
- data/lib/appium_lib_core/common/base/search_context.rb +1 -13
- data/lib/appium_lib_core/driver.rb +13 -13
- data/lib/appium_lib_core/mac2/device.rb +1 -1
- data/lib/appium_lib_core/version.rb +2 -2
- data/lib/appium_lib_core.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12d386d3e8769c8292b096b65b8de708fcecea995775f50e3dbc1a7025b97c42
|
4
|
+
data.tar.gz: '096f64ed445ce70b10f49873e627cdcfdbf5431a718615a68089333a18b4ad13'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 784554dc3954ff170b3f79c50cda1a23bcaaeaf55a349d4a2a0ecb12db5b6f7c908f4e882de6e9a5b2afd42c9d87a2815c414e16181f680f92b91f3f7bedef18
|
7
|
+
data.tar.gz: 9e71aa8a9a7093a607c4d2aa17b72b1f16c5eabe0b5fcc1e8ed34c4c16d18ddc80a411d748c5cbde82d38756eb540c8c355ccb4339c62864733b50e521e43d00
|
data/CHANGELOG.md
CHANGED
@@ -2,13 +2,14 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
Read `release_notes.md` for commit level details.
|
4
4
|
|
5
|
-
## [
|
5
|
+
## [10.0.0] - 2025-02-16
|
6
6
|
|
7
7
|
### Enhancements
|
8
|
+
- Use `http://127.0.0.1:4723` as the default url destination instead of `http://127.0.0.1:4723/wd/hub`
|
9
|
+
- `--base-path` in appium server may need to drop the `/wd/hub`
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
### Deprecations
|
11
|
+
## [9.5.2] - 2025-01-30
|
12
|
+
- Fix yardoc
|
12
13
|
|
13
14
|
## [9.5.1] - 2025-01-29
|
14
15
|
|
data/Gemfile
CHANGED
@@ -8,8 +8,8 @@ gem 'minitest', '~> 5.0'
|
|
8
8
|
gem 'minitest-reporters', '~> 1.1'
|
9
9
|
gem 'parallel_tests'
|
10
10
|
gem 'rake', '~> 13.0'
|
11
|
-
gem 'rubocop', '1.71.
|
11
|
+
gem 'rubocop', '1.71.2'
|
12
12
|
gem 'simplecov'
|
13
13
|
gem 'steep', '~> 1.9.3'
|
14
|
-
gem 'webmock', '~> 3.
|
14
|
+
gem 'webmock', '~> 3.25.0'
|
15
15
|
gem 'yard', '~> 0.9.11'
|
data/README.md
CHANGED
@@ -49,7 +49,7 @@ Run functional tests which require the Appium server and real device, Simulator/
|
|
49
49
|
$ npm install --location=global appium
|
50
50
|
$ appium driver install xcuitest
|
51
51
|
$ appium driver install uiautomator2 # etc
|
52
|
-
$ appium --
|
52
|
+
$ appium --relaxed-security # To run all tests in local
|
53
53
|
```
|
54
54
|
|
55
55
|
- Conduct tests
|
@@ -146,7 +146,7 @@ As of version 5.8.0, the client can attach to an existing session. The main purp
|
|
146
146
|
|
147
147
|
```ruby
|
148
148
|
# @driver is the driver instance of an existing session
|
149
|
-
attached_driver = ::Appium::Core::Driver.attach_to @driver.session_id, url: 'http://127.0.0.1:4723
|
149
|
+
attached_driver = ::Appium::Core::Driver.attach_to @driver.session_id, url: 'http://127.0.0.1:4723', automation_name: 'XCUITest', platform_name: 'ios'
|
150
150
|
assert attached_driver.session_id == @driver.session_id
|
151
151
|
attached_driver.page_source
|
152
152
|
```
|
@@ -126,16 +126,14 @@ module Appium
|
|
126
126
|
#
|
127
127
|
|
128
128
|
# @!method location=
|
129
|
-
# Set the
|
130
|
-
#
|
131
|
-
# @param [::Appium::Location] location Set the location.
|
129
|
+
# Set the [::Appium::Location] of the device.
|
132
130
|
#
|
133
131
|
# @example
|
134
132
|
#
|
135
133
|
# driver.location = ::Appium::Location.new(10, 10, 10)
|
136
134
|
#
|
137
135
|
|
138
|
-
# @!method set_location
|
136
|
+
# @!method set_location(latitude, longitude, altitude, speed: nil, satellites: nil)
|
139
137
|
# Set the location of the device.
|
140
138
|
#
|
141
139
|
# @param [String, Number] latitude Set the latitude.
|
@@ -145,7 +143,6 @@ module Appium
|
|
145
143
|
# in meters/second @since Appium 1.21.0 and in knots for emulators @since Appium 1.22.0.
|
146
144
|
# @param [String, Number] satellites Sets the count of geo satellites being tracked in range 1..12 @since Appium 1.22.0.
|
147
145
|
# This number is respected on Emulators.
|
148
|
-
# @param [::Appium::Location]
|
149
146
|
#
|
150
147
|
# @example
|
151
148
|
#
|
@@ -59,16 +59,16 @@ module Appium
|
|
59
59
|
# Appium only.
|
60
60
|
# Attach to an existing session.
|
61
61
|
#
|
62
|
-
# @param [String] The session id to attach to.
|
62
|
+
# @param [String] session_id The session id to attach to.
|
63
63
|
# @param [String] platform_name The platform name to keep in the dummy capabilities
|
64
|
-
# @param [String]
|
64
|
+
# @param [String] automation_name The automation name to keep in the dummy capabilities
|
65
65
|
# @return [::Appium::Core::Base::Capabilities]
|
66
66
|
#
|
67
67
|
# @example
|
68
68
|
#
|
69
69
|
# new_driver = ::Appium::Core::Driver.attach_to(
|
70
70
|
# driver.session_id,
|
71
|
-
# url: 'http://127.0.0.1:4723
|
71
|
+
# url: 'http://127.0.0.1:4723', automation_name: 'UiAutomator2', platform_name: 'Android'
|
72
72
|
# )
|
73
73
|
#
|
74
74
|
def attach_to(session_id, platform_name, automation_name)
|
@@ -625,14 +625,14 @@ module Appium
|
|
625
625
|
#
|
626
626
|
# @param [String] path The absolute local path or remote http URL to an .ipa or .apk file,
|
627
627
|
# or a .zip containing one of these.
|
628
|
-
# @
|
628
|
+
# @option [Boolean] replace Only for Android. Whether to reinstall/upgrade the package if it is already present
|
629
629
|
# on the device under test. +true+ by default
|
630
|
-
# @
|
630
|
+
# @option [Integer] timeout Only for Android. How much time to wait for the installation to complete.
|
631
631
|
# 60000ms by default.
|
632
|
-
# @
|
632
|
+
# @option [Boolean] allow_test_packages Only for Android. Whether to allow installation of packages marked as test
|
633
633
|
# in the manifest. +false+ by default
|
634
|
-
# @
|
635
|
-
# @
|
634
|
+
# @option [Boolean] use_sdcard Only for Android. Whether to use the SD card to install the app. +false+ by default
|
635
|
+
# @option [Boolean] grant_permissions Only for Android. whether to automatically grant application permissions
|
636
636
|
# on Android 6+ after the installation completes. +false+ by default
|
637
637
|
#
|
638
638
|
# Other parameters such as https://github.com/appium/appium-xcuitest-driver#mobile-installapp also can be set.
|
@@ -1014,7 +1014,7 @@ module Appium
|
|
1014
1014
|
|
1015
1015
|
# Convert vanilla element response to ::Appium::Core::Element
|
1016
1016
|
#
|
1017
|
-
# @param [Hash] id The id which can get as a response from server
|
1017
|
+
# @param [Hash] response_id id The id which can get as a response from server
|
1018
1018
|
# @return [::Appium::Core::Element]
|
1019
1019
|
#
|
1020
1020
|
# @example
|
@@ -56,7 +56,6 @@ module Appium
|
|
56
56
|
# in meters/second @since Appium 1.21.0 and in knots for emulators @since Appium 1.22.0.
|
57
57
|
# @param [String, Number] satellites Sets the count of geo satellites being tracked in range 1..12 @since Appium 1.22.0.
|
58
58
|
# This number is respected on Emulators.
|
59
|
-
# @param [::Appium::Location]
|
60
59
|
#
|
61
60
|
# @example
|
62
61
|
#
|
@@ -46,18 +46,7 @@ module Appium
|
|
46
46
|
# Can be fully qualified, or simple, and simple defaults to <code>androidx.test.espresso.matcher</code> package
|
47
47
|
# (e.g.: <code>class=CursorMatchers</code> fully qualified is <code>class=androidx.test.espresso.matcher.CursorMatchers</code>
|
48
48
|
#
|
49
|
-
# See
|
50
|
-
#
|
51
|
-
#
|
52
|
-
# @overload find_element(how, what)
|
53
|
-
# @param [Symbol, String] how The method to find the element by
|
54
|
-
# @param [String] what The locator to use
|
55
|
-
#
|
56
|
-
# @overload find_element(opts)
|
57
|
-
# @param [Hash] opts Find options
|
58
|
-
# @option opts [Symbol] :how Key named after the method to find the element by, containing the locator
|
59
|
-
# @return [Element]
|
60
|
-
# @raise [Error::NoSuchElementError] if the element doesn't exist
|
49
|
+
# See test code in the client repository to see how to send viewmatcher and datamatcher in Ruby client
|
61
50
|
#
|
62
51
|
# @example Find element with each keys
|
63
52
|
#
|
@@ -101,7 +90,6 @@ module Appium
|
|
101
90
|
# e.tag_name #=> "XCUIElementTypeStaticText"
|
102
91
|
#
|
103
92
|
# rubocop:enable Layout/LineLength
|
104
|
-
|
105
93
|
APPIUM_EXTRA_FINDERS = {
|
106
94
|
accessibility_id: 'accessibility id',
|
107
95
|
image: '-image',
|
@@ -129,7 +129,7 @@ module Appium
|
|
129
129
|
attr_reader :automation_name
|
130
130
|
|
131
131
|
# Custom URL for the selenium server. If set this attribute, ruby_lib_core try to handshake to the custom url.<br>
|
132
|
-
# Defaults to false. Then try to connect to <code>http://127.0.0.1:#{port}
|
132
|
+
# Defaults to false. Then try to connect to <code>http://127.0.0.1:#{port}</code>.
|
133
133
|
# @return [String]
|
134
134
|
attr_reader :custom_url
|
135
135
|
|
@@ -196,7 +196,7 @@ module Appium
|
|
196
196
|
# # format 1
|
197
197
|
# @core = Appium::Core.for caps: {...}, appium_lib: {...}
|
198
198
|
# # format 2. 'capabilities:' is also available instead of 'caps:'.
|
199
|
-
# @core = Appium::Core.for url: "http://127.0.0.1:8080
|
199
|
+
# @core = Appium::Core.for url: "http://127.0.0.1:8080", capabilities: {...}, appium_lib: {...}
|
200
200
|
#
|
201
201
|
#
|
202
202
|
# require 'rubygems'
|
@@ -220,7 +220,7 @@ module Appium
|
|
220
220
|
# }
|
221
221
|
# }
|
222
222
|
# @core = Appium::Core.for(opts) # create a core driver with 'opts' and extend methods into 'self'
|
223
|
-
# @core.start_driver # Connect to 'http://127.0.0.1:8080
|
223
|
+
# @core.start_driver # Connect to 'http://127.0.0.1:8080' because of 'port: 8080'
|
224
224
|
#
|
225
225
|
# # Start iOS driver with .zip file over HTTP
|
226
226
|
# # 'capabilities:' is also available instead of 'caps:'. Either is fine.
|
@@ -233,7 +233,7 @@ module Appium
|
|
233
233
|
# app: 'http://example.com/path/to/MyiOS.app.zip'
|
234
234
|
# },
|
235
235
|
# appium_lib: {
|
236
|
-
# server_url: 'http://custom-host:8080/wd/hub
|
236
|
+
# server_url: 'http://custom-host:8080/wd/hub',
|
237
237
|
# wait: 0,
|
238
238
|
# wait_timeout: 20,
|
239
239
|
# wait_interval: 0.3,
|
@@ -241,11 +241,11 @@ module Appium
|
|
241
241
|
# }
|
242
242
|
# }
|
243
243
|
# @core = Appium::Core.for(opts)
|
244
|
-
# @core.start_driver # Connect to 'http://custom-host:8080/wd/hub
|
244
|
+
# @core.start_driver # Connect to 'http://custom-host:8080/wd/hub'
|
245
245
|
#
|
246
246
|
# # Start iOS driver as another format. 'url' is available like below
|
247
247
|
# opts = {
|
248
|
-
# url: "http://custom-host:8080/wd/hub
|
248
|
+
# url: "http://custom-host:8080/wd/hub",
|
249
249
|
# capabilities: {
|
250
250
|
# platformName: :ios,
|
251
251
|
# platformVersion: '11.0',
|
@@ -261,7 +261,7 @@ module Appium
|
|
261
261
|
# }
|
262
262
|
# }
|
263
263
|
# @core = Appium::Core.for(opts) # create a core driver with 'opts' and extend methods into 'self'
|
264
|
-
# @core.start_driver # start driver with 'url'. Connect to 'http://custom-host:8080/wd/hub
|
264
|
+
# @core.start_driver # start driver with 'url'. Connect to 'http://custom-host:8080/wd/hub'
|
265
265
|
#
|
266
266
|
# # With a custom listener
|
267
267
|
# class CustomListener < ::Selenium::WebDriver::Support::AbstractEventListener
|
@@ -290,7 +290,7 @@ module Appium
|
|
290
290
|
# an endpoint to get running session's capabilities.
|
291
291
|
#
|
292
292
|
#
|
293
|
-
# @param [String] The session id to attach to.
|
293
|
+
# @param [String] session_id The session id to attach to.
|
294
294
|
# @param [String] url The WebDriver URL to attach to with the session_id.
|
295
295
|
# @param [String] automation_name The platform name to keep in the dummy capabilities
|
296
296
|
# @param [String] platform_name The automation name to keep in the dummy capabilities
|
@@ -300,7 +300,7 @@ module Appium
|
|
300
300
|
#
|
301
301
|
# new_driver = ::Appium::Core::Driver.attach_to(
|
302
302
|
# driver.session_id, # The 'driver' has an existing session id
|
303
|
-
# url: 'http://127.0.0.1:4723
|
303
|
+
# url: 'http://127.0.0.1:4723', automation_name: 'UiAutomator2', platform_name: 'Android'
|
304
304
|
# )
|
305
305
|
# new_driver.page_source # for example
|
306
306
|
#
|
@@ -352,7 +352,7 @@ module Appium
|
|
352
352
|
# Creates a new global driver and quits the old one if it exists.
|
353
353
|
# You can customise http_client as the following
|
354
354
|
#
|
355
|
-
# @param [String] server_url Custom server url to send to requests. Default is "http://127.0.0.1:4723
|
355
|
+
# @param [String] server_url Custom server url to send to requests. Default is "http://127.0.0.1:4723".
|
356
356
|
# @param http_client_ops [Hash] Options for http client
|
357
357
|
# @option http_client_ops [Hash] :http_client Custom HTTP Client
|
358
358
|
# @option http_client_ops [Hash] :open_timeout Custom open timeout for http client.
|
@@ -383,10 +383,10 @@ module Appium
|
|
383
383
|
# }
|
384
384
|
#
|
385
385
|
# @core = Appium::Core.for(opts) # create a core driver with 'opts' and extend methods into 'self'
|
386
|
-
# @driver = @core.start_driver server_url: "http://127.0.0.1:8000
|
386
|
+
# @driver = @core.start_driver server_url: "http://127.0.0.1:8000"
|
387
387
|
#
|
388
388
|
# # Attach custom HTTP client
|
389
|
-
# @driver = @core.start_driver server_url: "http://127.0.0.1:8000
|
389
|
+
# @driver = @core.start_driver server_url: "http://127.0.0.1:8000",
|
390
390
|
# http_client_ops: { http_client: Your:Http:Client.new,
|
391
391
|
# open_timeout: 1_000,
|
392
392
|
# read_timeout: 1_000 }
|
@@ -394,7 +394,7 @@ module Appium
|
|
394
394
|
|
395
395
|
def start_driver(server_url: nil,
|
396
396
|
http_client_ops: { http_client: nil, open_timeout: 999_999, read_timeout: 999_999 })
|
397
|
-
@custom_url ||= "http://127.0.0.1:#{@port}
|
397
|
+
@custom_url ||= "http://127.0.0.1:#{@port}"
|
398
398
|
@custom_url = server_url unless server_url.nil?
|
399
399
|
|
400
400
|
@http_client = get_http_client http_client: http_client_ops.delete(:http_client),
|
@@ -23,7 +23,7 @@ module Appium
|
|
23
23
|
# rubocop:disable Layout/LineLength
|
24
24
|
|
25
25
|
# @since Appium 1.20.0
|
26
|
-
# @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil, fps: nil, preset: nil, video_filter: nil, enable_capture_clicks: nil, enable_cursor_capture: nil, device_id: nil)
|
26
|
+
# @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil, fps: nil, preset: nil, video_filter: nil, enable_capture_clicks: nil, enable_cursor_capture: nil, device_id: nil, time_limit: nil)
|
27
27
|
#
|
28
28
|
# Record the display of devices running iOS Simulator since Xcode 9 or real devices since iOS 11
|
29
29
|
# (ffmpeg utility is required: 'brew install ffmpeg').
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
module Appium
|
16
16
|
module Core
|
17
|
-
VERSION = '
|
18
|
-
DATE = '2025-
|
17
|
+
VERSION = '10.0.0' unless defined? ::Appium::Core::VERSION
|
18
|
+
DATE = '2025-02-16' unless defined? ::Appium::Core::DATE
|
19
19
|
end
|
20
20
|
end
|
data/lib/appium_lib_core.rb
CHANGED
@@ -27,7 +27,8 @@ module Appium
|
|
27
27
|
# @param [Hash] hash Hash value to make symbolise
|
28
28
|
#
|
29
29
|
# @example
|
30
|
-
#
|
30
|
+
#
|
31
|
+
# opts = Appium.symbolize_keys(opts)
|
31
32
|
#
|
32
33
|
def self.symbolize_keys(hash, nested: false, enable_deprecation_msg: true)
|
33
34
|
# FIXME: As https://github.com/appium/ruby_lib/issues/945, we must remove this implicit string to symbol.
|
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:
|
4
|
+
version: 10.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazuaki MATSUO
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faye-websocket
|