appium_lib 16.3.0 → 16.3.2

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: a9e81fd3ef115747e9838bc68954bf0e0fb895df7922612111953f2a0d9888d6
4
- data.tar.gz: 2beea3083c901bf4ffbceeec161a2c1479aac5727a5982394bf67d00be8fec47
3
+ metadata.gz: a9c597c6061579f00a15f8f810558bf17d2e18756fd1be909b7b0bb0fad767ee
4
+ data.tar.gz: 06cca509cfdbb9e9d941f5235e0c731808c7d3048a89dca3f9bc4b9f1fab8ac1
5
5
  SHA512:
6
- metadata.gz: ea82b249a833372f9524d7e481694dbeae3f70a60b4e70e13e70dc78fc9bb775eef24e1c030fe03e265f31e387da3e9347b5c269b6897ff51dfa0780c6ae9405
7
- data.tar.gz: 82cac953765834b5cd86e0edb3b9f1142536875da73b565f6ec2ea18ef467bbb2c47a9e8d8df52133f861b3086e5afca14cb51be00f435337b76f77dd5d55a95
6
+ metadata.gz: 224aa2d91da34b8c91bab8f93b1a47f0e9ed00fa0f3a752a4bf6b9cba29b6468a0cb56d02250c00cbee7e87da3bf1ee03275ae4d4b31f812581751a6df5b52ff
7
+ data.tar.gz: bc510916871ae26d632a3887e83c4497951049ee5c31e796d0e8363f474660cd7bd09114facdf4e3890bc5dee6135bcd7ac45f5af7f1de27849e77985b8345bd
data/CHANGELOG.md CHANGED
@@ -1,8 +1,23 @@
1
1
  # Changelogs
2
- Commit based release not is [release_notes.md](./release_notes.md)
2
+ Historical commit-level release notes are in [release_notes.md](./release_notes.md).
3
+ New entries are maintained by Release Please.
3
4
 
4
5
  Release tags are https://github.com/appium/ruby_lib/releases .
5
6
 
7
+ ## [16.3.2](https://github.com/appium/ruby_lib/compare/v16.3.1...v16.3.2) (2026-09-14)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * metadata in gems ([d727297](https://github.com/appium/ruby_lib/commit/d727297b4fff4e98287058b0ea26c093a0aab334))
13
+
14
+ ## [16.3.1](https://github.com/appium/ruby_lib/compare/v16.3.0...v16.3.1) (2026-09-13)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * issues in code ([#1124](https://github.com/appium/ruby_lib/issues/1124)) ([1fc98b8](https://github.com/appium/ruby_lib/commit/1fc98b89cf41284c7da83df214aed6d8764429c2))
20
+
6
21
  ## [16.3.0] - 2026-05-11
7
22
  - Bump appium_lib_core to 13+
8
23
  - No user facing changes are expected.
data/appium_lib.gemspec CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'lib/appium_lib/version'
2
4
 
3
5
  Gem::Specification.new do |s|
@@ -6,7 +8,8 @@ Gem::Specification.new do |s|
6
8
  s.name = 'appium_lib'
7
9
  s.version = Appium::VERSION
8
10
  s.license = 'Apache-2.0'
9
- s.description = 'Ruby library for Appium.'
11
+ s.description = 'Helper methods for writing cross-platform Android and iOS tests in Ruby using Appium. ' \
12
+ 'Extends appium_lib_core with convenient methods for finding elements and interacting with devices.'
10
13
  s.summary = 'Ruby library for Appium'
11
14
  s.authors = ['code@bootstraponline.com', 'Kazuaki Matsuo']
12
15
  s.email = %w(code@bootstraponline.com fly.49.89.over@gmail.com)
@@ -17,6 +20,9 @@ Gem::Specification.new do |s|
17
20
  s.add_dependency 'nokogiri', '~> 1.8', '>= 1.8.1'
18
21
  s.add_dependency 'tomlrb', '>= 1.1', '< 3.0'
19
22
 
20
- s.files = `git ls-files`.split("\n").reject { |v| v.match(/\A^(ios_tests|android_tests|grid|test_apps)\/.+/) }
23
+ s.files = Dir.glob('lib/**/*.rb', base: __dir__) + %w[appium_lib.gemspec readme.md LICENSE-2.0.txt CHANGELOG.md]
24
+ s.metadata['source_code_uri'] = s.homepage
25
+ s.metadata['changelog_uri'] = "#{s.homepage}/blob/master/CHANGELOG.md"
26
+ s.metadata['bug_tracker_uri'] = "#{s.homepage}/issues"
21
27
  s.metadata['rubygems_mfa_required'] = 'true'
22
28
  end
@@ -29,12 +29,12 @@ module Appium
29
29
 
30
30
  def initialize # rubocop:disable Lint/MissingSuper
31
31
  reset
32
- @filter = false
32
+ @filter = false
33
33
  end
34
34
 
35
35
  def reset
36
- @result = ''
37
- @keys = %w(text resource-id content-desc)
36
+ @result = ''
37
+ @keys = %w(text resource-id content-desc)
38
38
  end
39
39
 
40
40
  # http://nokogiri.org/Nokogiri/XML/SAX/Document.html
@@ -110,7 +110,7 @@ module Appium
110
110
  # @return [Array] list of require files as an array, nil if require doesn't exist
111
111
  def expand_required_files(base_dir, file_paths)
112
112
  # ensure files are absolute
113
- Array(file_paths).map! do |f|
113
+ file_paths = Array(file_paths).map do |f|
114
114
  file = File.exist?(f) ? f : File.join(base_dir, f)
115
115
  file = File.expand_path file
116
116
 
@@ -171,10 +171,10 @@ module Appium
171
171
  # override unless there's an existing method with matching arity
172
172
  next if const.respond_to?(m) && const.method(m).arity == driver.method(m).arity
173
173
 
174
- const.send(:define_singleton_method, m) do |*args, &block|
175
- super(*args, &block) # promote.rb
174
+ const.send(:define_singleton_method, m) do |*args, **kwargs, &block|
175
+ super(*args, **kwargs, &block) # promote.rb
176
176
  rescue NoMethodError, ArgumentError
177
- driver.send m, *args, &block if driver.respond_to?(m)
177
+ driver.send m, *args, **kwargs, &block if driver.respond_to?(m)
178
178
  end
179
179
  end
180
180
  end
@@ -219,7 +219,7 @@ module Appium
219
219
  # https://github.com/appium/ruby_lib/issues/917
220
220
 
221
221
  # Remove the method before adding it.
222
- remove_method method if method_defined? method
222
+ remove_method method if instance_methods(false).include? method
223
223
 
224
224
  define_method method do |*args, &block|
225
225
  # Prefer existing method.
@@ -276,7 +276,7 @@ module Appium
276
276
  doc = if source.start_with? '<html'
277
277
  Nokogiri::HTML(source) { |cfg| cfg.options = opts }
278
278
  else
279
- Nokogiri::XML(source) { |cfg| cfg.options = opts }
279
+ Nokogiri::XML(source) { |cfg| cfg.options = opts }
280
280
  end
281
281
  puts doc.to_xml indent: 2
282
282
  end
@@ -564,7 +564,8 @@ module Appium
564
564
  # @option http_client_ops [Hash] :read_timeout Custom read timeout for http client.
565
565
  # @return [Selenium::WebDriver] the new global driver
566
566
  def start_driver(http_client_ops = { http_client: nil, open_timeout: 999_999, read_timeout: 999_999 })
567
- if http_client_ops[:http_client].nil?
567
+ http_client = http_client_ops[:http_client]
568
+ if http_client.nil?
568
569
  http_client = ::Appium::Http::Default.new(open_timeout: http_client_ops[:open_timeout],
569
570
  read_timeout: http_client_ops[:read_timeout])
570
571
  end
@@ -14,6 +14,6 @@
14
14
 
15
15
  module Appium
16
16
  # Version and Date are defined on the 'Appium' module, not 'Appium::Common'
17
- VERSION = '16.3.0' unless defined? ::Appium::VERSION
18
- DATE = '2026-05-11' unless defined? ::Appium::DATE
17
+ VERSION = '16.3.2' unless defined? ::Appium::VERSION
18
+ DATE = '2026-09-14' unless defined? ::Appium::DATE # x-release-please-date
19
19
  end
data/readme.md CHANGED
@@ -18,7 +18,7 @@ We can avoid the class driver with current `ruby_lib`, but if you'd like to impl
18
18
  # Setup
19
19
  ## Requirement
20
20
  - [Appium](https://github.com/appium/appium#requirements)
21
- - Ruby: 3.0+
21
+ - Ruby: 3.1+
22
22
 
23
23
  ### Ruby Lib and Appium
24
24
 
@@ -99,3 +99,8 @@ This repository has examples for running tests in parallel. Read [ios_tests](htt
99
99
 
100
100
  ## How to add new helpful methods
101
101
  - Add the new methods in this library
102
+
103
+ ## Releasing
104
+
105
+ Review and merge the Release Please PR to publish. See [RELEASING.md](RELEASING.md)
106
+ for one-time Trusted Publishing setup and recovery instructions.
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.3.0
4
+ version: 16.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - code@bootstraponline.com
8
8
  - Kazuaki Matsuo
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2026-05-11 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: appium_lib_core
@@ -71,7 +70,9 @@ dependencies:
71
70
  - - "<"
72
71
  - !ruby/object:Gem::Version
73
72
  version: '3.0'
74
- description: Ruby library for Appium.
73
+ description: Helper methods for writing cross-platform Android and iOS tests in Ruby
74
+ using Appium. Extends appium_lib_core with convenient methods for finding elements
75
+ and interacting with devices.
75
76
  email:
76
77
  - code@bootstraponline.com
77
78
  - fly.49.89.over@gmail.com
@@ -79,27 +80,9 @@ executables: []
79
80
  extensions: []
80
81
  extra_rdoc_files: []
81
82
  files:
82
- - ".github/CODEOWNERS"
83
- - ".github/ISSUE_TEMPLATE.md"
84
- - ".github/PULL_REQUEST_TEMPLATE.md"
85
- - ".github/dependabot.yml"
86
- - ".github/workflows/functional-test.yml"
87
- - ".github/workflows/pr-title.yml"
88
- - ".github/workflows/rubocop.yml"
89
- - ".gitignore"
90
- - ".rubocop.yml"
91
83
  - CHANGELOG.md
92
- - Gemfile
93
84
  - LICENSE-2.0.txt
94
- - Rakefile
95
- - Thorfile
96
85
  - appium_lib.gemspec
97
- - contributing.md
98
- - docs/android_uiautomator.md
99
- - docs/docs.md
100
- - docs/ios_xcuitest.md
101
- - docs/parallel.md
102
- - docs/w3c.md
103
86
  - lib/appium_lib.rb
104
87
  - lib/appium_lib/android/android.rb
105
88
  - lib/appium_lib/android/common/command/command.rb
@@ -155,14 +138,14 @@ files:
155
138
  - lib/appium_lib/sauce_labs.rb
156
139
  - lib/appium_lib/version.rb
157
140
  - readme.md
158
- - release_notes.md
159
- - test/first_test.rb
160
141
  homepage: https://github.com/appium/ruby_lib
161
142
  licenses:
162
143
  - Apache-2.0
163
144
  metadata:
145
+ source_code_uri: https://github.com/appium/ruby_lib
146
+ changelog_uri: https://github.com/appium/ruby_lib/blob/master/CHANGELOG.md
147
+ bug_tracker_uri: https://github.com/appium/ruby_lib/issues
164
148
  rubygems_mfa_required: 'true'
165
- post_install_message:
166
149
  rdoc_options: []
167
150
  require_paths:
168
151
  - lib
@@ -177,8 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
160
  - !ruby/object:Gem::Version
178
161
  version: '0'
179
162
  requirements: []
180
- rubygems_version: 3.5.9
181
- signing_key:
163
+ rubygems_version: 4.0.16
182
164
  specification_version: 4
183
165
  summary: Ruby library for Appium
184
166
  test_files: []
data/.github/CODEOWNERS DELETED
@@ -1 +0,0 @@
1
- * @KazuCocoa
@@ -1,21 +0,0 @@
1
- ## This is a
2
- * [ ] Bug report
3
- * [ ] Question
4
- * [ ] Freature Request
5
-
6
- ## Summary
7
-
8
- ## Environment
9
- * Appium version (or git revision):
10
- * `ruby_lib` version:
11
- * Mobile platform/version/device under test:
12
-
13
- ## Actual behaviour and steps to reproduce
14
-
15
- ## Expected behaviour
16
-
17
- ## Link to Appium/Ruby logs
18
-
19
- Create a [GIST](https://gist.github.com) which is a paste of your _full_ Appium logs, and link them here.
20
-
21
- ## Any additional comments
@@ -1,17 +0,0 @@
1
- # Summary
2
-
3
- Please include a summary of the change and which issue is fixed.
4
- Please also include relevant motivation and context.
5
-
6
- Closes # (issue)
7
-
8
- # How Has This Been Tested?
9
-
10
- Please describe the tests that you ran to verify your changes. If the change has test code, it can be alternative.
11
-
12
- - [ ] Test A
13
- - [ ] Test B
14
-
15
- # Checklist
16
-
17
- - [ ] `bundle exec rake rubocop`
@@ -1,14 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: weekly
7
- time: "11:00"
8
- open-pull-requests-limit: 10
9
- - package-ecosystem: github-actions
10
- directory: "/"
11
- schedule:
12
- interval: weekly
13
- time: "11:00"
14
- open-pull-requests-limit: 10
@@ -1,170 +0,0 @@
1
- name: Functional Tests
2
-
3
- on:
4
- # Run by manual at this time
5
- workflow_dispatch:
6
- push:
7
- branches: [ master ]
8
- pull_request:
9
- branches: [ master ]
10
-
11
- concurrency:
12
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
13
- cancel-in-progress: true
14
-
15
- jobs:
16
- ios_test:
17
- runs-on: macos-15
18
- timeout-minutes: 90
19
- env:
20
- XCODE_VERSION: 16.4
21
- IOS_VERSION: 18.5
22
- IOS_DEVICE_NAME: iPhone 16 Plus
23
-
24
- steps:
25
- - uses: actions/checkout@v6
26
-
27
- - name: Install Node.js
28
- uses: actions/setup-node@v6
29
- with:
30
- node-version: 'lts/*'
31
-
32
- - name: Select Xcode
33
- uses: maxim-lobanov/setup-xcode@v1
34
- with:
35
- xcode-version: ${{ env.XCODE_VERSION }}
36
- - run: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
37
-
38
- - uses: futureware-tech/simulator-action@v5
39
- with:
40
- # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
41
- model: ${{ env.IOS_DEVICE_NAME }}
42
- os_version: ${{ env.IOS_VERSION }}
43
-
44
- - name: Preparing other environment
45
- run: |
46
- brew install ffmpeg
47
- brew tap wix/brew
48
- brew install applesimutils
49
-
50
- # Start Appium
51
- - name: Install appium and mjpeg-consumer
52
- run: |
53
- npm install -g appium
54
- npm install -g mjpeg-consumer
55
- - run: |
56
- appium driver install xcuitest
57
- appium plugin install images
58
- appium plugin install execute-driver
59
- nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log &
60
-
61
- - run: |
62
- npx appium driver run xcuitest download-wda-sim --platform=ios --outdir=${{ github.workspace }}/wda
63
- name: Downloading prebuilt WDA
64
-
65
- - name: Set up Ruby
66
- uses: ruby/setup-ruby@v1
67
- with:
68
- ruby-version: 4.0
69
- - run: |
70
- bundle install
71
- bundle exec rake ios
72
- name: Run tests
73
- timeout-minutes: 60
74
- working-directory: ios_tests
75
- env:
76
- LOCAL_PREBUILT_WDA: ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app
77
-
78
- - name: Save server output
79
- if: ${{ always() }}
80
- uses: actions/upload-artifact@master
81
- with:
82
- name: appium-ios_test_with_other_deps.log
83
- path: |
84
- appium.log
85
- test/report/
86
-
87
- android_test:
88
- runs-on: ubuntu-latest
89
- timeout-minutes: 90
90
- env:
91
- API_LEVEL: 35
92
- ARCH: x86_64
93
-
94
- steps:
95
- - uses: actions/checkout@v6
96
-
97
- - name: Set up Java
98
- uses: actions/setup-java@v5
99
- with:
100
- distribution: temurin
101
- java-version: '17'
102
-
103
- - name: Install Node.js
104
- uses: actions/setup-node@v6
105
- with:
106
- node-version: 'lts/*'
107
-
108
- - name: Set up Ruby
109
- uses: ruby/setup-ruby@v1
110
- with:
111
- ruby-version: 4.0
112
-
113
- - name: Install appium
114
- run: |
115
- npm install -g appium
116
- npm install -g mjpeg-consumer
117
-
118
- - name: Start appium
119
- run: |
120
- appium driver install uiautomator2
121
- appium plugin install images
122
- appium plugin install execute-driver
123
- nohup appium --use-plugins=images,execute-driver --relaxed-security --log-timestamp --log-no-colors > appium.log &
124
-
125
- - name: Enable KVM group perms
126
- run: |
127
- echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
128
- sudo udevadm control --reload-rules
129
- sudo udevadm trigger --name-match=kvm
130
-
131
- - name: AVD cache
132
- uses: actions/cache@v5
133
- id: avd-cache
134
- with:
135
- path: |
136
- ~/.android/avd/*
137
- ~/.android/adb*
138
- key: avd-${{ env.API_LEVEL }}
139
-
140
- - name: Create AVD snapshot for cache
141
- if: steps.avd-cache.outputs.cache-hit != 'true'
142
- uses: reactivecircus/android-emulator-runner@v2
143
- with:
144
- api-level: ${{ env.API_LEVEL }}
145
- arch: ${{ env.ARCH }}
146
- target: google_apis
147
- force-avd-creation: false
148
- emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
149
- disable-animations: false
150
- script: echo "Generated AVD snapshot for caching."
151
-
152
- - name: run tests
153
- uses: reactivecircus/android-emulator-runner@v2
154
- with:
155
- api-level: ${{ env.API_LEVEL }}
156
- arch: ${{ env.ARCH }}
157
- script: cd android_tests;bundle install;bundle exec rake --tasks;bundle exec rake android
158
- target: google_apis
159
- profile: Nexus 5X
160
- disable-spellchecker: true
161
- disable-animations: true
162
-
163
- - name: Save server output
164
- if: ${{ always() }}
165
- uses: actions/upload-artifact@master
166
- with:
167
- name: appium-android_test_with_other_deps.log
168
- path: |
169
- appium.log
170
- test/report/
@@ -1,10 +0,0 @@
1
- name: Conventional Commits
2
- on:
3
- pull_request:
4
- types: [opened, edited, synchronize, reopened]
5
-
6
- jobs:
7
- lint:
8
- uses: appium/appium-workflows/.github/workflows/pr-title.yml@main
9
- with:
10
- config-preset: angular
@@ -1,29 +0,0 @@
1
- name: rubocop
2
-
3
- on:
4
- push:
5
- branches: [ master ]
6
- pull_request:
7
- branches: [ master ]
8
-
9
- jobs:
10
- test:
11
- strategy:
12
- fail-fast: false
13
- matrix:
14
- ruby: [3.1, 3.2, 3.3]
15
-
16
- runs-on: ubuntu-latest
17
-
18
- steps:
19
- - uses: actions/checkout@v6
20
- - name: Set up Ruby
21
- uses: ruby/setup-ruby@v1
22
- with:
23
- ruby-version: ${{ matrix.ruby }}
24
- - name: Install dependencies
25
- run: bundle install
26
- - name: Run rubocop
27
- run: bundle exec rake rubocop
28
- - name: Run tests
29
- run: bundle exec rake test
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- *.gem
2
- *.lock
3
- .DS_Store
4
-