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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b1aa9e62b11df7b31d2b0cb2da08780e251b052b82a59b741811a611f00aaf8d
4
- data.tar.gz: ecab8df07b2745d0d6d996b8e3a3a32c840834ca84eed2e8dd4daa318915d278
3
+ metadata.gz: a9c597c6061579f00a15f8f810558bf17d2e18756fd1be909b7b0bb0fad767ee
4
+ data.tar.gz: 06cca509cfdbb9e9d941f5235e0c731808c7d3048a89dca3f9bc4b9f1fab8ac1
5
5
  SHA512:
6
- metadata.gz: cd9cbd2131d41a2ea9399d8f7b3b232783f15d975c75acd117158d99913044f7926ddbbccf06936eafa57e8cc6512e6eff50cb2b54436512acd6698a75969b11
7
- data.tar.gz: e42e614ede8d46d494dfef431ecc2f983e969bf22d70b2b39f6402ce2789f5ec6165b244a8ec06cdf1f1dabfa0eeb1a01ce9d497c9da93ab92521d2bd4f3d292
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 = '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,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 = `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
@@ -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.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
 
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.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: 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.
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
@@ -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)
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
- ```