appium_lib 16.3.1 → 16.4.0

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: b1aa9e62b11df7b31d2b0cb2da08780e251b052b82a59b741811a611f00aaf8d
4
- data.tar.gz: ecab8df07b2745d0d6d996b8e3a3a32c840834ca84eed2e8dd4daa318915d278
3
+ metadata.gz: 737cac2a7befc3590331dca750b538fa83574b34a1e3120d13b16abc46fdbbba
4
+ data.tar.gz: 6e98a1456c2ce0eadf278a27472a78ce7975a28b962fdf8fe152c75721563789
5
5
  SHA512:
6
- metadata.gz: cd9cbd2131d41a2ea9399d8f7b3b232783f15d975c75acd117158d99913044f7926ddbbccf06936eafa57e8cc6512e6eff50cb2b54436512acd6698a75969b11
7
- data.tar.gz: e42e614ede8d46d494dfef431ecc2f983e969bf22d70b2b39f6402ce2789f5ec6165b244a8ec06cdf1f1dabfa0eeb1a01ce9d497c9da93ab92521d2bd4f3d292
6
+ metadata.gz: 32bb9c6dbfd35f25836f194e07b1f93314027747035754a8fe39fe06a717e1f76bb7d84ef4a24e7ea3a5534a05f892d9f8c15e0513c771f015eceadabe36cc3e
7
+ data.tar.gz: bb57e7f98300da2da9bd53a26e83439a4df63abc1d7d80f1dea66942b14d428d7f30c40ae400aa533decc4962232c62e32764a6230be9f216f576cf1d2c782d4
data/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@ New entries are maintained by Release Please.
4
4
 
5
5
  Release tags are https://github.com/appium/ruby_lib/releases .
6
6
 
7
+ ## [16.4.0](https://github.com/appium/ruby_lib/compare/v16.3.2...v16.4.0) (2026-10-26)
8
+
9
+
10
+ ### Features
11
+
12
+ * include view-tag attribute in Android page inspection ([#1138](https://github.com/appium/ruby_lib/issues/1138)) ([0041940](https://github.com/appium/ruby_lib/commit/0041940f3588285ac10b7bdd95c227e4a559ce5f))
13
+
14
+ ## [16.3.2](https://github.com/appium/ruby_lib/compare/v16.3.1...v16.3.2) (2026-09-14)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * metadata in gems ([d727297](https://github.com/appium/ruby_lib/commit/d727297b4fff4e98287058b0ea26c093a0aab334))
20
+
7
21
  ## [16.3.1](https://github.com/appium/ruby_lib/compare/v16.3.0...v16.3.1) (2026-09-13)
8
22
 
9
23
 
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)
@@ -15,14 +18,11 @@ Gem::Specification.new do |s|
15
18
 
16
19
  s.add_dependency 'appium_lib_core', '>= 13.0.0', '< 14.0'
17
20
  s.add_dependency 'nokogiri', '~> 1.8', '>= 1.8.1'
18
- s.add_dependency 'tomlrb', '>= 1.1', '< 3.0'
21
+ s.add_dependency 'tomlrb', '>= 1.1', '< 4.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
- # Keep release automation out of the published package.
23
- s.files.reject! do |file|
24
- file.start_with?('.github/', 'script/', 'test/release/') ||
25
- %w[RELEASING.md release-please-config.json .release-please-manifest.json].include?(file)
26
- end
27
-
28
28
  end
@@ -34,7 +34,7 @@ module Appium
34
34
 
35
35
  def reset
36
36
  @result = ''
37
- @keys = %w(text resource-id content-desc)
37
+ @keys = %w(text resource-id content-desc view-tag)
38
38
  end
39
39
 
40
40
  # http://nokogiri.org/Nokogiri/XML/SAX/Document.html
@@ -47,7 +47,7 @@ module Appium
47
47
  attributes[key] = value if keys.include?(key) && !value.empty?
48
48
  end
49
49
 
50
- # scoped to: text resource-id content-desc
50
+ # scoped to: text resource-id content-desc view-tag
51
51
  attributes_values = attributes.values
52
52
  strings = driver.lazy_load_strings
53
53
  id_matches = strings.empty? ? [] : strings.select { |_key, value| attributes_values.include? value }
@@ -72,6 +72,7 @@ module Appium
72
72
  text = attributes['text']
73
73
  desc = attributes['content-desc']
74
74
  id = attributes['resource-id']
75
+ tag = attributes['view-tag']
75
76
 
76
77
  if !text.nil? && text == desc
77
78
  string += " text, desc: #{text}\n"
@@ -80,6 +81,7 @@ module Appium
80
81
  string += " desc: #{desc}\n" unless desc.nil?
81
82
  end
82
83
  string += " id: #{id}\n" unless id.nil?
84
+ string += " tag: #{tag}\n" unless tag.nil?
83
85
  string += " strings.xml: #{string_ids}" unless string_ids.nil?
84
86
 
85
87
  @result += "\n#{name}\n#{string}" unless attributes.empty?
@@ -88,7 +90,7 @@ module Appium
88
90
 
89
91
  # Android only.
90
92
  # Returns a string containing interesting elements.
91
- # The text, content description, and id are returned.
93
+ # The text, content description, id, and view tag are returned.
92
94
  # @param class_name [String] the class name to filter on.
93
95
  # if false (default) then all classes will be inspected
94
96
  # @return [String]
@@ -246,7 +246,7 @@ module Appium
246
246
  # Save global reference to last created Appium driver for top level methods.
247
247
  $driver = self if global_driver
248
248
 
249
- self # rubocop:disable Lint/Void # return newly created driver
249
+ self # rubocop:disable Lint/Void -- return newly created driver
250
250
  end
251
251
 
252
252
  private
@@ -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.1' unless defined? ::Appium::VERSION
18
- DATE = '2026-09-13' unless defined? ::Appium::DATE # x-release-please-date
17
+ VERSION = '16.4.0' unless defined? ::Appium::VERSION
18
+ DATE = '2026-10-26' 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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.3.1
4
+ version: 16.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - code@bootstraponline.com
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: '1.1'
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '3.0'
62
+ version: '4.0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,8 +69,10 @@ dependencies:
69
69
  version: '1.1'
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '3.0'
73
- description: Ruby library for Appium.
72
+ version: '4.0'
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.
74
76
  email:
75
77
  - code@bootstraponline.com
76
78
  - fly.49.89.over@gmail.com
@@ -78,19 +80,9 @@ executables: []
78
80
  extensions: []
79
81
  extra_rdoc_files: []
80
82
  files:
81
- - ".gitignore"
82
- - ".rubocop.yml"
83
83
  - CHANGELOG.md
84
- - Gemfile
85
84
  - LICENSE-2.0.txt
86
- - Rakefile
87
85
  - appium_lib.gemspec
88
- - contributing.md
89
- - docs/android_uiautomator.md
90
- - docs/docs.md
91
- - docs/ios_xcuitest.md
92
- - docs/parallel.md
93
- - docs/w3c.md
94
86
  - lib/appium_lib.rb
95
87
  - lib/appium_lib/android/android.rb
96
88
  - lib/appium_lib/android/common/command/command.rb
@@ -146,13 +138,13 @@ files:
146
138
  - lib/appium_lib/sauce_labs.rb
147
139
  - lib/appium_lib/version.rb
148
140
  - readme.md
149
- - release_notes.md
150
- - test/first_test.rb
151
- - test/regression_test.rb
152
141
  homepage: https://github.com/appium/ruby_lib
153
142
  licenses:
154
143
  - Apache-2.0
155
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
156
148
  rubygems_mfa_required: 'true'
157
149
  rdoc_options: []
158
150
  require_paths:
@@ -168,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
160
  - !ruby/object:Gem::Version
169
161
  version: '0'
170
162
  requirements: []
171
- rubygems_version: 4.0.16
163
+ rubygems_version: 4.0.20
172
164
  specification_version: 4
173
165
  summary: Ruby library for Appium
174
166
  test_files: []
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- *.gem
2
- *.lock
3
- .DS_Store
4
-
data/.rubocop.yml DELETED
@@ -1,299 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 3.1
3
- Layout/LineLength:
4
- Max: 128
5
- Metrics/MethodLength:
6
- Enabled: false
7
- Metrics/ModuleLength:
8
- Enabled: false
9
- Metrics/ClassLength:
10
- Enabled: false
11
- Metrics/CyclomaticComplexity:
12
- Enabled: false
13
- Metrics/PerceivedComplexity:
14
- Enabled: false
15
- Metrics/AbcSize:
16
- Enabled: false
17
- Metrics/BlockLength:
18
- Enabled: false
19
- Style/Documentation:
20
- Enabled: false
21
- Style/RegexpLiteral:
22
- Enabled: false
23
- # blocked on https://github.com/appium/ruby_lib/issues/312. Already removed from core part
24
- Style/GlobalVars:
25
- Enabled: false
26
- Style/PercentLiteralDelimiters:
27
- Enabled: false
28
- Style/CommentedKeyword:
29
- Enabled: false
30
- Naming/AccessorMethodName:
31
- Enabled: false
32
- Naming/RescuedExceptionsVariableName:
33
- Enabled: false
34
- Layout/HeredocIndentation:
35
- Enabled: false
36
- Layout/RescueEnsureAlignment:
37
- Enabled: false
38
- Layout/HashAlignment:
39
- Enabled: false
40
- Style/ExplicitBlockArgument:
41
- Enabled: false
42
- Style/OptionalBooleanParameter:
43
- Enabled: false
44
- Naming/MethodParameterName:
45
- Enabled: false
46
- Style/KeywordParametersOrder:
47
- Enabled: false
48
- Style/AccessorGrouping:
49
- Enabled: false
50
- Style/StringConcatenation:
51
- Enabled: false
52
- Lint/NonDeterministicRequireOrder:
53
- Enabled: false
54
- Gemspec/DeprecatedAttributeAssignment:
55
- Enabled: true
56
- Layout/LineEndStringConcatenationIndentation:
57
- Enabled: true
58
- Layout/SpaceBeforeBrackets:
59
- Enabled: true
60
- Lint/AmbiguousAssignment:
61
- Enabled: true
62
- Lint/AmbiguousOperatorPrecedence:
63
- Enabled: false
64
- Lint/AmbiguousRange:
65
- Enabled: true
66
- Lint/DeprecatedConstants:
67
- Enabled: true
68
- Lint/DuplicateBranch:
69
- Enabled: true
70
- Lint/DuplicateRegexpCharacterClassElement:
71
- Enabled: true
72
- Lint/EmptyBlock:
73
- Enabled: true
74
- Lint/EmptyClass:
75
- Enabled: false
76
- Lint/EmptyInPattern:
77
- Enabled: true
78
- Lint/IncompatibleIoSelectWithFiberScheduler:
79
- Enabled: true
80
- Lint/LambdaWithoutLiteralBlock:
81
- Enabled: true
82
- Lint/NoReturnInBeginEndBlocks:
83
- Enabled: true
84
- Lint/NumberedParameterAssignment:
85
- Enabled: true
86
- Lint/OrAssignmentToConstant:
87
- Enabled: true
88
- Lint/RedundantDirGlobSort:
89
- Enabled: true
90
- Lint/RequireRelativeSelfPath:
91
- Enabled: true
92
- Lint/SymbolConversion:
93
- Enabled: true
94
- Lint/ToEnumArguments:
95
- Enabled: true
96
- Lint/TripleQuotes:
97
- Enabled: true
98
- Lint/UnexpectedBlockArity:
99
- Enabled: true
100
- Lint/UnmodifiedReduceAccumulator:
101
- Enabled: true
102
- Security/IoMethods:
103
- Enabled: true
104
- Style/ArgumentsForwarding:
105
- Enabled: true
106
- Style/CollectionCompact:
107
- Enabled: true
108
- Style/DocumentDynamicEvalDefinition:
109
- Enabled: true
110
- Style/EndlessMethod:
111
- Enabled: true
112
- Style/HashConversion:
113
- Enabled: false
114
- Style/HashExcept:
115
- Enabled: true
116
- Style/IfWithBooleanLiteralBranches:
117
- Enabled: true
118
- Style/InPatternThen:
119
- Enabled: true
120
- Style/MultilineInPatternThen:
121
- Enabled: true
122
- Style/NegatedIfElseCondition:
123
- Enabled: true
124
- Style/NilLambda:
125
- Enabled: true
126
- Style/NumberedParameters:
127
- Enabled: true
128
- Style/NumberedParametersLimit:
129
- Enabled: true
130
- Style/QuotedSymbols:
131
- Enabled: true
132
- Style/RedundantArgument:
133
- Enabled: true
134
- Style/RedundantSelfAssignmentBranch:
135
- Enabled: true
136
- Style/SelectByRegexp:
137
- Enabled: true
138
- Style/StringChars:
139
- Enabled: true
140
- Style/SwapValues:
141
- Enabled: true
142
- Gemspec/DevelopmentDependencies: # new in 1.44
143
- Enabled: true
144
- Layout/LineContinuationLeadingSpace: # new in 1.31
145
- Enabled: true
146
- Layout/LineContinuationSpacing: # new in 1.31
147
- Enabled: true
148
- Lint/ConstantOverwrittenInRescue: # new in 1.31
149
- Enabled: true
150
- Lint/DuplicateMagicComment: # new in 1.37
151
- Enabled: true
152
- Lint/NonAtomicFileOperation: # new in 1.31
153
- Enabled: false
154
- Lint/RefinementImportMethods: # new in 1.27
155
- Enabled: true
156
- Lint/RequireRangeParentheses: # new in 1.32
157
- Enabled: true
158
- Lint/UselessRescue: # new in 1.43
159
- Enabled: true
160
- Metrics/CollectionLiteralLength: # new in 1.47
161
- Enabled: true
162
- Naming/BlockForwarding: # new in 1.24
163
- Enabled: true
164
- Security/CompoundHash: # new in 1.28
165
- Enabled: true
166
- Style/ArrayIntersect: # new in 1.40
167
- Enabled: true
168
- Style/ComparableClamp: # new in 1.44
169
- Enabled: true
170
- Style/ConcatArrayLiterals: # new in 1.41
171
- Enabled: true
172
- Style/DirEmpty: # new in 1.48
173
- Enabled: true
174
- Style/EmptyHeredoc: # new in 1.32
175
- Enabled: true
176
- Style/EnvHome: # new in 1.29
177
- Enabled: true
178
- Style/FetchEnvVar: # new in 1.28
179
- Enabled: true
180
- Style/FileEmpty: # new in 1.48
181
- Enabled: true
182
- Style/FileRead: # new in 1.24
183
- Enabled: true
184
- Style/FileWrite: # new in 1.24
185
- Enabled: true
186
- Style/MagicCommentFormat: # new in 1.35
187
- Enabled: true
188
- Style/MapCompactWithConditionalBlock: # new in 1.30
189
- Enabled: true
190
- Style/MapToHash: # new in 1.24
191
- Enabled: true
192
- Style/MapToSet: # new in 1.42
193
- Enabled: true
194
- Style/MinMaxComparison: # new in 1.42
195
- Enabled: true
196
- Style/NestedFileDirname: # new in 1.26
197
- Enabled: true
198
- Style/ObjectThen: # new in 1.28
199
- Enabled: true
200
- Style/OperatorMethodCall: # new in 1.37
201
- Enabled: true
202
- Style/RedundantConstantBase: # new in 1.40
203
- Enabled: false
204
- Style/RedundantDoubleSplatHashBraces: # new in 1.41
205
- Enabled: true
206
- Style/RedundantEach: # new in 1.38
207
- Enabled: true
208
- Style/RedundantHeredocDelimiterQuotes: # new in 1.45
209
- Enabled: true
210
- Style/RedundantInitialize: # new in 1.27
211
- Enabled: true
212
- Style/RedundantStringEscape: # new in 1.37
213
- Enabled: true
214
- Gemspec/RequireMFA: # new in 1.23
215
- Enabled: true
216
- Lint/UselessRuby2Keywords: # new in 1.23
217
- Enabled: true
218
- Style/OpenStructUse: # new in 1.23
219
- Enabled: false
220
- Lint/RedundantStringCoercion:
221
- Enabled: false
222
- Gemspec/AddRuntimeDependency: # new in 1.65
223
- Enabled: true
224
- Lint/ConstantReassignment: # new in 1.70
225
- Enabled: true
226
- Lint/DuplicateMatchPattern: # new in 1.50
227
- Enabled: true
228
- Lint/DuplicateSetElement: # new in 1.67
229
- Enabled: true
230
- Lint/HashNewWithKeywordArgumentsAsDefault: # new in 1.69
231
- Enabled: true
232
- Lint/ItWithoutArgumentsInBlock: # new in 1.59
233
- Enabled: true
234
- Lint/LiteralAssignmentInCondition: # new in 1.58
235
- Enabled: true
236
- Lint/MixedCaseRange: # new in 1.53
237
- Enabled: true
238
- Lint/NumericOperationWithConstantResult: # new in 1.69
239
- Enabled: true
240
- Lint/RedundantRegexpQuantifiers: # new in 1.53
241
- Enabled: true
242
- Lint/SharedMutableDefault: # new in 1.70
243
- Enabled: true
244
- Lint/UnescapedBracketInRegexp: # new in 1.68
245
- Enabled: true
246
- Lint/UselessDefined: # new in 1.69
247
- Enabled: true
248
- Lint/UselessNumericOperation: # new in 1.66
249
- Enabled: true
250
- Style/AmbiguousEndlessMethodDefinition: # new in 1.68
251
- Enabled: true
252
- Style/BitwisePredicate: # new in 1.68
253
- Enabled: true
254
- Style/CombinableDefined: # new in 1.68
255
- Enabled: true
256
- Style/DataInheritance: # new in 1.49
257
- Enabled: true
258
- Style/DigChain: # new in 1.69
259
- Enabled: true
260
- Style/ExactRegexpMatch: # new in 1.51
261
- Enabled: true
262
- Style/FileNull: # new in 1.69
263
- Enabled: true
264
- Style/FileTouch: # new in 1.69
265
- Enabled: true
266
- Style/ItAssignment: # new in 1.70
267
- Enabled: true
268
- Style/KeywordArgumentsMerging: # new in 1.68
269
- Enabled: true
270
- Style/MapIntoArray: # new in 1.63
271
- Enabled: true
272
- Style/RedundantArrayConstructor: # new in 1.52
273
- Enabled: true
274
- Style/RedundantCurrentDirectoryInPath: # new in 1.53
275
- Enabled: true
276
- Style/RedundantFilterChain: # new in 1.52
277
- Enabled: true
278
- Style/RedundantInterpolationUnfreeze: # new in 1.66
279
- Enabled: true
280
- Style/RedundantLineContinuation: # new in 1.49
281
- Enabled: true
282
- Style/RedundantRegexpArgument: # new in 1.53
283
- Enabled: true
284
- Style/RedundantRegexpConstructor: # new in 1.52
285
- Enabled: true
286
- Style/ReturnNilInPredicateMethodDefinition: # new in 1.53
287
- Enabled: true
288
- Style/SafeNavigationChainLength: # new in 1.68
289
- Enabled: false
290
- Style/SendWithLiteralMethodName: # new in 1.64
291
- Enabled: true
292
- Style/SingleLineDoEndBlock: # new in 1.57
293
- Enabled: true
294
- Style/SuperArguments: # new in 1.64
295
- Enabled: true
296
- Style/SuperWithArgsParentheses: # new in 1.58
297
- Enabled: true
298
- Style/YAMLFileRead: # new in 1.53
299
- Enabled: true
data/Gemfile DELETED
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- source 'https://rubygems.org'
16
- gemspec
17
-
18
- gem 'hashdiff', '~> 1.2.0'
19
- gem 'minitest', '~> 5.0'
20
- gem 'minitest-reporters', '~> 1.1'
21
- gem 'pry'
22
- gem 'rake', '~> 13.0'
23
- gem 'rubocop', '1.90.0'
24
- gem 'yard', '~> 0.9.11'
data/Rakefile DELETED
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'bundler/gem_tasks'
16
- require 'rubocop/rake_task'
17
- require 'rake/testtask'
18
-
19
- desc 'Execute RuboCop static code analysis'
20
- RuboCop::RakeTask.new(:rubocop) do |t|
21
- t.patterns = %w(lib ios_tests android_tests)
22
- t.options = %w(-D)
23
- t.fail_on_error = true
24
- end
25
-
26
- desc('Run all unit tests in test directory')
27
- Rake::TestTask.new(:test) do |t|
28
- t.libs << 'test'
29
- t.libs << 'lib'
30
- t.test_files = FileList[ENV['TESTS'] ? ENV['TESTS'].split(',') : 'test/**/*_test.rb']
31
- end
data/contributing.md DELETED
@@ -1,35 +0,0 @@
1
- # Contributing
2
-
3
- For features or bug fixes, please submit a pull request. Ideally there would be a test as well. The remainder of this doc details how to run the tests.
4
-
5
- If you'd like to adding new driver commands, please refer to https://github.com/appium/ruby_lib_core
6
-
7
- ## Tests
8
-
9
- - Tests are run against [appium's master branch](https://github.com/appium/appium/blob/master/docs/en/contributing-to-appium/appium-from-source.md)
10
- - The tests are run using the [flaky gem](https://github.com/appium/flaky) on OS X
11
- - The `arc` command can be run from within the `ios_tests` or `android_tests` folder to open an interactive console
12
-
13
- ### Run iOS tests
14
-
15
- iOS tests are run on the iPhone 6 / iOS 9.3 simulator.
16
-
17
- - `cd ios_tests`
18
- - `flake 3 ios` - Run all the iOS tests up to 3 times
19
-
20
- ### Run Android tests
21
-
22
- Android tests require running on physical hardware with Android 5.0 (API 21). The emulator is unreliable.
23
-
24
- - `cd android_tests`
25
- - `flake 3 android` - Run all the Android tests up to 3 times
26
-
27
- ## Publishing
28
-
29
- 0. Ensure you have `~/.gem/credentials` If not run [the following command](http://guides.rubygems.org/make-your-own-gem/) (replace username with your rubygems user)
30
- > $ curl -u username https://rubygems.org/api/v1/api_key.yaml >
31
- ~/.gem/credentials; chmod 0600 ~/.gem/credentials
32
-
33
- 1. Bump the version number: `thor bump` (`bumpy`, `bumpz`)
34
- 2. Update `CHANGELOG.md`
35
- 3. Generate release note, publish release gem and push the tag to this repository: `thor release`
@@ -1,17 +0,0 @@
1
- # Help debugging
2
-
3
- - `adb shell uiautomator events`
4
- - Prints out accessibility events to the console until the connection to the device is terminated
5
- - [URL](https://stuff.mit.edu/afs/sipb/project/android/docs/tools/help/uiautomator/index.html)
6
- - **notice**
7
- - If Appium is started then it terminates the other `uiautomator` processes
8
-
9
- # uiautomator2
10
- ## difference between uiautomator1 and uiautomator2
11
- - `find_element/s :id, "ids"`
12
- - uiautomator1
13
- - Find elements with `resource_id`
14
- - Find elements with string id resource(string.xml based)
15
- - uiautomator2
16
- - Find elements with `resource_id`
17
- - from: Does not appium-uiautomator2-server support finding string ids with "id" strategy? [issue](https://github.com/appium/appium/issues/8349)