appium_lib 16.3.1 → 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 +4 -4
- data/CHANGELOG.md +7 -0
- data/appium_lib.gemspec +8 -8
- data/lib/appium_lib/version.rb +2 -2
- data/readme.md +1 -1
- metadata +7 -15
- data/.gitignore +0 -4
- data/.rubocop.yml +0 -299
- data/Gemfile +0 -24
- data/Rakefile +0 -31
- data/contributing.md +0 -35
- data/docs/android_uiautomator.md +0 -17
- data/docs/docs.md +0 -130
- data/docs/ios_xcuitest.md +0 -114
- data/docs/parallel.md +0 -8
- data/docs/w3c.md +0 -55
- data/release_notes.md +0 -2279
- data/test/first_test.rb +0 -29
- data/test/regression_test.rb +0 -132
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a9c597c6061579f00a15f8f810558bf17d2e18756fd1be909b7b0bb0fad767ee
|
|
4
|
+
data.tar.gz: 06cca509cfdbb9e9d941f5235e0c731808c7d3048a89dca3f9bc4b9f1fab8ac1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 224aa2d91da34b8c91bab8f93b1a47f0e9ed00fa0f3a752a4bf6b9cba29b6468a0cb56d02250c00cbee7e87da3bf1ee03275ae4d4b31f812581751a6df5b52ff
|
|
7
|
+
data.tar.gz: bc510916871ae26d632a3887e83c4497951049ee5c31e796d0e8363f474660cd7bd09114facdf4e3890bc5dee6135bcd7ac45f5af7f1de27849e77985b8345bd
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@ 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.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
|
+
|
|
7
14
|
## [16.3.1](https://github.com/appium/ruby_lib/compare/v16.3.0...v16.3.1) (2026-09-13)
|
|
8
15
|
|
|
9
16
|
|
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 = '
|
|
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,12 +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 =
|
|
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
|
data/lib/appium_lib/version.rb
CHANGED
|
@@ -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.
|
|
18
|
-
DATE = '2026-09-
|
|
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
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.
|
|
4
|
+
version: 16.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- code@bootstraponline.com
|
|
@@ -70,7 +70,9 @@ dependencies:
|
|
|
70
70
|
- - "<"
|
|
71
71
|
- !ruby/object:Gem::Version
|
|
72
72
|
version: '3.0'
|
|
73
|
-
description:
|
|
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:
|
data/.gitignore
DELETED
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`
|
data/docs/android_uiautomator.md
DELETED
|
@@ -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)
|
data/docs/docs.md
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
# Documentation
|
|
2
|
-
## API Doc of Ruby Client
|
|
3
|
-
- This library: http://www.rubydoc.info/github/appium/ruby_lib
|
|
4
|
-
- Core: http://www.rubydoc.info/github/appium/ruby_lib_core
|
|
5
|
-
- [Ruby selenium-webdriver](https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings)
|
|
6
|
-
|
|
7
|
-
### General
|
|
8
|
-
- [Appium](https://github.com/appium/appium/blob/master/README.md)
|
|
9
|
-
- [Supported platforms](https://github.com/appium/appium/blob/master/docs/en/about-appium/platform-support.md)
|
|
10
|
-
- [All methods supported by Appium](https://github.com/appium/appium-base-driver/blob/master/docs/mjsonwp/protocol-methods.md)
|
|
11
|
-
- Fundamental Commands: http://appium.io/docs/en/commands/status/ etc
|
|
12
|
-
- [MiniTest Expectations](http://docs.seattlerb.org/minitest/Minitest/Expectations.html)
|
|
13
|
-
|
|
14
|
-
### Driver types in Ruby Client
|
|
15
|
-
|
|
16
|
-
```ruby
|
|
17
|
-
# Appium specific driver with helpers available extending Standard Appium Driver.
|
|
18
|
-
@appium_driver = Appium::Driver.new @options, false
|
|
19
|
-
|
|
20
|
-
# Standard Appium Driver extends Selenium WebDriver.
|
|
21
|
-
@selenium_driver = @appium_driver.start_driver
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### Example
|
|
25
|
-
|
|
26
|
-
Example of automating the built in Android settings.
|
|
27
|
-
|
|
28
|
-
```ruby
|
|
29
|
-
# run Pry, and paste the following
|
|
30
|
-
apk = {
|
|
31
|
-
platformName: 'android',
|
|
32
|
-
deviceName: :nexus,
|
|
33
|
-
appPackage: 'com.android.settings',
|
|
34
|
-
appActivity: '.Settings',
|
|
35
|
-
appWaitActivity: '.Settings'
|
|
36
|
-
}
|
|
37
|
-
Appium::Driver.new({caps: apk}, false).start_driver
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Example use of Appium's mobile gesture.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
Long click on an ImageView in Android.
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
last_image = find_elements(:class, 'ImageView').last
|
|
47
|
-
long_press(element: last_image)
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Rotate examples. The behaviour is depends on devices.
|
|
51
|
-
|
|
52
|
-
```ruby
|
|
53
|
-
driver.rotate :landscape
|
|
54
|
-
driver.rotate :portrait
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
- `appium_server_version` Discover the Appium rev running on the server.
|
|
58
|
-
- `element.send_keys "msg"` Sends keys to currently active element
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
### APIs
|
|
62
|
-
|
|
63
|
-
```ruby
|
|
64
|
-
e.name # button, text
|
|
65
|
-
e.value # secure, textfield
|
|
66
|
-
e.type 'some text' # type text into textfield
|
|
67
|
-
e.clear # clear textfield
|
|
68
|
-
e.tag_name # calls .type (patch.rb)
|
|
69
|
-
e.text
|
|
70
|
-
e.size
|
|
71
|
-
e.location
|
|
72
|
-
e.location_rel
|
|
73
|
-
e.click
|
|
74
|
-
e.send_keys 'keys to send'
|
|
75
|
-
e.displayed? # true or false depending if the element is visible
|
|
76
|
-
e.selected? # is the tab selected?
|
|
77
|
-
e.attribute('checked') # is the checkbox checked?
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
# alert example without helper methods
|
|
81
|
-
alert = @driver.switch_to.alert
|
|
82
|
-
alert.text
|
|
83
|
-
alert.accept
|
|
84
|
-
alert.dismiss
|
|
85
|
-
|
|
86
|
-
# Secure textfield example.
|
|
87
|
-
#
|
|
88
|
-
# Find using default value
|
|
89
|
-
s = textfield 'Password'
|
|
90
|
-
# Enter password
|
|
91
|
-
s.send_keys 'hello'
|
|
92
|
-
# Check value
|
|
93
|
-
s.value == ios_password('hello'.length)
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
--
|
|
97
|
-
|
|
98
|
-
#### Driver
|
|
99
|
-
- `start_driver` will restart the driver.
|
|
100
|
-
- `x` will quit the driver and exit Pry.
|
|
101
|
-
- `execute_script` calls `@driver.execute_script`
|
|
102
|
-
- `find_element` calls `@driver.find_element`
|
|
103
|
-
- `find_elements` calls `@driver.find_elements`
|
|
104
|
-
- `no_wait` will set implicit wait to 0. `@driver.manage.timeouts.implicit_wait = 0`
|
|
105
|
-
- `set_wait` will set implicit wait to default seconds. `@driver.manage.timeouts.implicit_wait = default`
|
|
106
|
-
- `set_wait(timeout_seconds)` will set implicit wait to desired timeout. `@driver.manage.timeouts.implicit_wait = timeout`
|
|
107
|
-
- `.click` to tap an element.
|
|
108
|
-
- `.send_keys` or `.type` to type on an element.
|
|
109
|
-
|
|
110
|
-
#### Cucumber Sauce Integration
|
|
111
|
-
|
|
112
|
-
Reset after each test and when done report the result to Sauce after quiting the driver.
|
|
113
|
-
|
|
114
|
-
```ruby
|
|
115
|
-
require 'rest_client' # https://github.com/archiloque/rest-client
|
|
116
|
-
require 'json' # for .to_json
|
|
117
|
-
require 'sauce_whisk'
|
|
118
|
-
|
|
119
|
-
After do |scenario|
|
|
120
|
-
# end the test session, ignoring any exceptions.
|
|
121
|
-
ignore { $driver.driver_quit }
|
|
122
|
-
|
|
123
|
-
user = ENV['SAUCE_USERNAME']
|
|
124
|
-
key = ENV['SAUCE_ACCESS_KEY']
|
|
125
|
-
if user && !user.empty? && key && !key.empty?
|
|
126
|
-
passed = ! scenario.failed?
|
|
127
|
-
SauceWhisk::Jobs.change_status $driver.driver.session_id, passed
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
```
|