appium_lib_core 5.0.2 → 5.1.1
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 +21 -0
- data/README.md +1 -1
- data/appium_lib_core.gemspec +2 -2
- data/lib/appium_lib_core/common/base/bridge.rb +9 -11
- data/lib/appium_lib_core/common/base/driver.rb +17 -15
- data/lib/appium_lib_core/common/command.rb +0 -2
- data/lib/appium_lib_core/common/device/app_management.rb +2 -14
- data/lib/appium_lib_core/version.rb +2 -2
- metadata +5 -23
- data/.github/ISSUE_TEMPLATE/issue-report.md +0 -29
- data/.github/contributing.md +0 -26
- data/.github/dependabot.yml +0 -8
- data/.github/issue_template.md +0 -20
- data/.github/workflows/codeql-analysis.yml +0 -70
- data/.github/workflows/unittest.yml +0 -67
- data/.gitignore +0 -18
- data/.rubocop.yml +0 -152
- data/azure-pipelines.yml +0 -15
- data/ci-jobs/functional/android_setup.yml +0 -3
- data/ci-jobs/functional/ios_setup.yml +0 -7
- data/ci-jobs/functional/publish_test_result.yml +0 -18
- data/ci-jobs/functional/run_appium.yml +0 -25
- data/ci-jobs/functional/start-emulator.sh +0 -26
- data/ci-jobs/functional_test.yml +0 -298
- data/docs/mobile_command.md +0 -34
- data/release_notes.md +0 -948
- data/script/commands.rb +0 -166
data/.rubocop.yml
DELETED
@@ -1,152 +0,0 @@
|
|
1
|
-
AllCops:
|
2
|
-
TargetRubyVersion: 2.6
|
3
|
-
Layout/LineLength:
|
4
|
-
Max: 128
|
5
|
-
Layout/RescueEnsureAlignment:
|
6
|
-
Enabled: false
|
7
|
-
Layout/EmptyLinesAroundAttributeAccessor:
|
8
|
-
Enabled: false
|
9
|
-
Layout/EmptyLineBetweenDefs:
|
10
|
-
Enabled: false
|
11
|
-
Layout/HashAlignment:
|
12
|
-
Enabled: false
|
13
|
-
Metrics/MethodLength:
|
14
|
-
Enabled: false
|
15
|
-
Metrics/ModuleLength:
|
16
|
-
Enabled: false
|
17
|
-
Metrics/ClassLength:
|
18
|
-
Enabled: false
|
19
|
-
Metrics/AbcSize:
|
20
|
-
Enabled: false
|
21
|
-
Metrics/CyclomaticComplexity:
|
22
|
-
Max: 14
|
23
|
-
Metrics/PerceivedComplexity:
|
24
|
-
Max: 14
|
25
|
-
Metrics/ParameterLists:
|
26
|
-
Enabled: false
|
27
|
-
Lint/NestedMethodDefinition:
|
28
|
-
Enabled: false
|
29
|
-
Style/ZeroLengthPredicate:
|
30
|
-
Enabled: false
|
31
|
-
Style/Documentation:
|
32
|
-
Enabled: false
|
33
|
-
Style/CommentedKeyword:
|
34
|
-
Enabled: false
|
35
|
-
Style/PercentLiteralDelimiters:
|
36
|
-
Enabled: false
|
37
|
-
Style/SymbolArray:
|
38
|
-
Enabled: false
|
39
|
-
Style/UnpackFirst:
|
40
|
-
Enabled: false
|
41
|
-
Naming/AccessorMethodName:
|
42
|
-
Enabled: false
|
43
|
-
Naming/MemoizedInstanceVariableName:
|
44
|
-
Enabled: true
|
45
|
-
Exclude:
|
46
|
-
- test/**/*
|
47
|
-
Naming/RescuedExceptionsVariableName:
|
48
|
-
Enabled: false
|
49
|
-
Style/CaseLikeIf:
|
50
|
-
Enabled: false
|
51
|
-
Style/RedundantRegexpEscape:
|
52
|
-
Enabled: false
|
53
|
-
Style/OptionalBooleanParameter:
|
54
|
-
Enabled: false
|
55
|
-
Style/ExplicitBlockArgument:
|
56
|
-
Enabled: false
|
57
|
-
Style/KeywordParametersOrder:
|
58
|
-
Enabled: false
|
59
|
-
Gemspec/DateAssignment:
|
60
|
-
Enabled: true
|
61
|
-
Gemspec/RequireMFA:
|
62
|
-
Enabled: true
|
63
|
-
Layout/LineEndStringConcatenationIndentation:
|
64
|
-
Enabled: true
|
65
|
-
Layout/SpaceBeforeBrackets:
|
66
|
-
Enabled: true
|
67
|
-
Lint/AmbiguousAssignment:
|
68
|
-
Enabled: true
|
69
|
-
Lint/AmbiguousOperatorPrecedence:
|
70
|
-
Enabled: false
|
71
|
-
Lint/AmbiguousRange:
|
72
|
-
Enabled: true
|
73
|
-
Lint/DeprecatedConstants:
|
74
|
-
Enabled: true
|
75
|
-
Lint/DuplicateBranch:
|
76
|
-
Enabled: true
|
77
|
-
Lint/DuplicateRegexpCharacterClassElement:
|
78
|
-
Enabled: true
|
79
|
-
Lint/EmptyBlock:
|
80
|
-
Enabled: true
|
81
|
-
Lint/EmptyClass:
|
82
|
-
Enabled: true
|
83
|
-
Lint/EmptyInPattern:
|
84
|
-
Enabled: true
|
85
|
-
Lint/IncompatibleIoSelectWithFiberScheduler:
|
86
|
-
Enabled: true
|
87
|
-
Lint/LambdaWithoutLiteralBlock:
|
88
|
-
Enabled: true
|
89
|
-
Lint/NoReturnInBeginEndBlocks:
|
90
|
-
Enabled: true
|
91
|
-
Lint/NumberedParameterAssignment:
|
92
|
-
Enabled: true
|
93
|
-
Lint/OrAssignmentToConstant:
|
94
|
-
Enabled: true
|
95
|
-
Lint/RedundantDirGlobSort:
|
96
|
-
Enabled: true
|
97
|
-
Lint/RequireRelativeSelfPath:
|
98
|
-
Enabled: true
|
99
|
-
Lint/SymbolConversion:
|
100
|
-
Enabled: true
|
101
|
-
Lint/ToEnumArguments:
|
102
|
-
Enabled: true
|
103
|
-
Lint/TripleQuotes:
|
104
|
-
Enabled: true
|
105
|
-
Lint/UnexpectedBlockArity:
|
106
|
-
Enabled: true
|
107
|
-
Lint/UnmodifiedReduceAccumulator:
|
108
|
-
Enabled: true
|
109
|
-
Lint/UselessRuby2Keywords:
|
110
|
-
Enabled: true
|
111
|
-
Security/IoMethods:
|
112
|
-
Enabled: true
|
113
|
-
Style/ArgumentsForwarding:
|
114
|
-
Enabled: true
|
115
|
-
Style/CollectionCompact:
|
116
|
-
Enabled: true
|
117
|
-
Style/DocumentDynamicEvalDefinition:
|
118
|
-
Enabled: true
|
119
|
-
Style/EndlessMethod:
|
120
|
-
Enabled: true
|
121
|
-
Style/HashConversion:
|
122
|
-
Enabled: true
|
123
|
-
Style/HashExcept:
|
124
|
-
Enabled: true
|
125
|
-
Style/IfWithBooleanLiteralBranches:
|
126
|
-
Enabled: true
|
127
|
-
Style/InPatternThen:
|
128
|
-
Enabled: true
|
129
|
-
Style/MultilineInPatternThen:
|
130
|
-
Enabled: true
|
131
|
-
Style/NegatedIfElseCondition:
|
132
|
-
Enabled: true
|
133
|
-
Style/NilLambda:
|
134
|
-
Enabled: true
|
135
|
-
Style/NumberedParameters:
|
136
|
-
Enabled: true
|
137
|
-
Style/NumberedParametersLimit:
|
138
|
-
Enabled: true
|
139
|
-
Style/QuotedSymbols:
|
140
|
-
Enabled: true
|
141
|
-
Style/RedundantArgument:
|
142
|
-
Enabled: true
|
143
|
-
Style/RedundantSelfAssignmentBranch:
|
144
|
-
Enabled: true
|
145
|
-
Style/SelectByRegexp:
|
146
|
-
Enabled: true
|
147
|
-
Style/StringChars:
|
148
|
-
Enabled: true
|
149
|
-
Style/SwapValues:
|
150
|
-
Enabled: true
|
151
|
-
Style/OpenStructUse:
|
152
|
-
Enabled: true
|
data/azure-pipelines.yml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# Ruby
|
2
|
-
# Package your Ruby project.
|
3
|
-
# Add steps that install rails, analyze code, save build artifacts, deploy, and more:
|
4
|
-
# https://docs.microsoft.com/azure/devops/pipelines/languages/ruby
|
5
|
-
jobs:
|
6
|
-
- template: ./ci-jobs/functional_test.yml
|
7
|
-
|
8
|
-
# Runs tests nightly to make sure they works against appium@beta
|
9
|
-
schedules:
|
10
|
-
- cron: "0 0 * * *"
|
11
|
-
displayName: Daily Nightly build (UTC)
|
12
|
-
branches:
|
13
|
-
include:
|
14
|
-
- master
|
15
|
-
always: true
|
@@ -1,7 +0,0 @@
|
|
1
|
-
steps:
|
2
|
-
- script: sudo xcode-select -s /Applications/Xcode_${{ parameters.xcodeVersion }}.app/Contents/Developer
|
3
|
-
displayName: Xcode Select ${{ parameters.xcodeVersion }}
|
4
|
-
- script: xcrun simctl list
|
5
|
-
displayName: List Installed Simulators
|
6
|
-
- script: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
|
7
|
-
displayName: Disable pasteboard automatic sync
|
@@ -1,18 +0,0 @@
|
|
1
|
-
steps:
|
2
|
-
- task: PublishTestResults@2
|
3
|
-
condition: always()
|
4
|
-
inputs:
|
5
|
-
testResultsFiles: 'test/reports/TEST-AppiumLibCoreTest*.xml'
|
6
|
-
testRunTitle: '$(Agent.JobName)'
|
7
|
-
- task: ArchiveFiles@2
|
8
|
-
condition: always()
|
9
|
-
inputs:
|
10
|
-
rootFolderOrFile: 'test/report'
|
11
|
-
archiveType: 'zip'
|
12
|
-
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
|
13
|
-
replaceExistingArchive: true
|
14
|
-
- task: PublishBuildArtifacts@1
|
15
|
-
condition: always()
|
16
|
-
inputs:
|
17
|
-
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
|
18
|
-
artifactName: '$(Agent.JobName)'
|
@@ -1,25 +0,0 @@
|
|
1
|
-
steps:
|
2
|
-
- task: NodeTool@0
|
3
|
-
inputs:
|
4
|
-
versionSpec: 12.x
|
5
|
-
displayName: Install Node 12.x
|
6
|
-
- script: npm install -g appium@${APPIUM_VERSION}
|
7
|
-
displayName: Install appium beta
|
8
|
-
- script: npm install -g mjpeg-consumer
|
9
|
-
displayName: Install MJPEG Consumer
|
10
|
-
- script: npm list --depth 2 -g || echo 'ok'
|
11
|
-
displayName: Installed node dependencies
|
12
|
-
- task: UseRubyVersion@0
|
13
|
-
inputs:
|
14
|
-
versionSpec: '3.0'
|
15
|
-
- script: |
|
16
|
-
mkdir -p test/report
|
17
|
-
nohup appium --relaxed-security --log-timestamp --log-no-colors > test/report/appium.out 2>&1 &
|
18
|
-
displayName: Run Appium in background
|
19
|
-
env:
|
20
|
-
JAVA_HOME: $(JAVA_HOME_11_X64)
|
21
|
-
PATH: $(JAVA_HOME_11_X64)/bin:$(PATH)
|
22
|
-
- script: |
|
23
|
-
gem install bundler;
|
24
|
-
bundle install --retry=3 --jobs=4 --path vendor/bundle;
|
25
|
-
displayName: Install Gems
|
@@ -1,26 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
# This script was copy-pasted from https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/android?view=azure-devops#test-on-the-android-emulator
|
4
|
-
# with some changes
|
5
|
-
|
6
|
-
# Install AVD files
|
7
|
-
declare -r emulator="system-images;android-${ANDROID_SDK_VERSION};google_apis;x86"
|
8
|
-
echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager --install "$emulator"
|
9
|
-
|
10
|
-
# Show a list of emulators
|
11
|
-
${ANDROID_HOME}/tools/bin/avdmanager list
|
12
|
-
|
13
|
-
# Create emulator
|
14
|
-
echo "no" | ${ANDROID_HOME}/tools/bin/avdmanager create avd -d "Nexus 5X" -n testemulator -k "${emulator}" --force
|
15
|
-
|
16
|
-
echo ${ANDROID_HOME}/emulator/emulator -list-avds
|
17
|
-
|
18
|
-
echo "Starting emulator"
|
19
|
-
|
20
|
-
# Start emulator in background
|
21
|
-
nohup ${ANDROID_HOME}/emulator/emulator -avd testemulator -accel auto -no-boot-anim -gpu auto -no-snapshot > /dev/null 2>&1 &
|
22
|
-
${ANDROID_HOME}/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82'
|
23
|
-
|
24
|
-
${ANDROID_HOME}/platform-tools/adb devices
|
25
|
-
|
26
|
-
echo "Emulator started"
|
data/ci-jobs/functional_test.yml
DELETED
@@ -1,298 +0,0 @@
|
|
1
|
-
# jobs for functional test
|
2
|
-
parameters:
|
3
|
-
vmImage: 'macOS-10.15'
|
4
|
-
vmImageForIOS: 'macOS-10.15'
|
5
|
-
xcodeForIOS: 12.2
|
6
|
-
xcodeForTVOS: 12.2
|
7
|
-
androidSDK: 29 # API Level 30 emulators are more unstable than 29
|
8
|
-
appiumVersion: 'beta'
|
9
|
-
ignoreVersionSkip: true
|
10
|
-
CI: true
|
11
|
-
|
12
|
-
|
13
|
-
jobs:
|
14
|
-
# Run unit tests on different Node versions
|
15
|
-
- job: func_test_ios_base
|
16
|
-
pool:
|
17
|
-
vmImage: ${{ parameters.vmImageForIOS }}
|
18
|
-
variables:
|
19
|
-
CI: ${{ parameters.ci }}
|
20
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
21
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
22
|
-
steps:
|
23
|
-
- template: ./functional/ios_setup.yml
|
24
|
-
parameters:
|
25
|
-
xcodeVersion: ${{ parameters.xcodeForIOS }}
|
26
|
-
- template: ./functional/run_appium.yml
|
27
|
-
- script: bundle exec rake test:func:ios TESTS=test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb
|
28
|
-
displayName: Run tests func_test_ios_base
|
29
|
-
- template: ./functional/publish_test_result.yml
|
30
|
-
|
31
|
-
- job: func_test_ios_webdriver1
|
32
|
-
pool:
|
33
|
-
vmImage: ${{ parameters.vmImageForIOS }}
|
34
|
-
variables:
|
35
|
-
CI: ${{ parameters.ci }}
|
36
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
37
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
38
|
-
steps:
|
39
|
-
- template: ./functional/ios_setup.yml
|
40
|
-
parameters:
|
41
|
-
xcodeVersion: ${{ parameters.xcodeForIOS }}
|
42
|
-
- template: ./functional/run_appium.yml
|
43
|
-
- script: bundle exec rake test:func:ios TESTS=test/functional/ios/webdriver/create_session_test.rb,test/functional/ios/webdriver/w3c_actions_test.rb
|
44
|
-
displayName: Run tests func_test_ios_webdriver1
|
45
|
-
- template: ./functional/publish_test_result.yml
|
46
|
-
|
47
|
-
- job: func_test_ios_webdriver2
|
48
|
-
pool:
|
49
|
-
vmImage: ${{ parameters.vmImageForIOS }}
|
50
|
-
variables:
|
51
|
-
CI: ${{ parameters.ci }}
|
52
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
53
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
54
|
-
steps:
|
55
|
-
- template: ./functional/ios_setup.yml
|
56
|
-
parameters:
|
57
|
-
xcodeVersion: ${{ parameters.xcodeForIOS }}
|
58
|
-
- template: ./functional/run_appium.yml
|
59
|
-
- script: bundle exec rake test:func:ios TESTS=test/functional/ios/webdriver/device_test.rb
|
60
|
-
displayName: Run tests func_test_ios_webdriver2
|
61
|
-
- template: ./functional/publish_test_result.yml
|
62
|
-
|
63
|
-
- job: func_test_ios_ios1
|
64
|
-
pool:
|
65
|
-
vmImage: ${{ parameters.vmImageForIOS }}
|
66
|
-
variables:
|
67
|
-
CI: ${{ parameters.ci }}
|
68
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
69
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
70
|
-
steps:
|
71
|
-
- template: ./functional/ios_setup.yml
|
72
|
-
parameters:
|
73
|
-
xcodeVersion: ${{ parameters.xcodeForIOS }}
|
74
|
-
- template: ./functional/run_appium.yml
|
75
|
-
- script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_test.rb
|
76
|
-
displayName: Run tests func_test_ios_ios1
|
77
|
-
- template: ./functional/publish_test_result.yml
|
78
|
-
|
79
|
-
- job: func_test_ios_ios2
|
80
|
-
pool:
|
81
|
-
vmImage: ${{ parameters.vmImageForIOS }}
|
82
|
-
variables:
|
83
|
-
CI: ${{ parameters.ci }}
|
84
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
85
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
86
|
-
steps:
|
87
|
-
- template: ./functional/ios_setup.yml
|
88
|
-
parameters:
|
89
|
-
xcodeVersion: ${{ parameters.xcodeForIOS }}
|
90
|
-
- template: ./functional/run_appium.yml
|
91
|
-
- script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_wda_attachment_test.rb,test/functional/ios/ios/search_context_test.rb
|
92
|
-
displayName: Run tests func_test_ios_ios2
|
93
|
-
- template: ./functional/publish_test_result.yml
|
94
|
-
|
95
|
-
- job: func_test_ios_ios3
|
96
|
-
pool:
|
97
|
-
vmImage: ${{ parameters.vmImageForIOS }}
|
98
|
-
variables:
|
99
|
-
CI: ${{ parameters.ci }}
|
100
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
101
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
102
|
-
steps:
|
103
|
-
- template: ./functional/ios_setup.yml
|
104
|
-
parameters:
|
105
|
-
xcodeVersion: ${{ parameters.xcodeForIOS }}
|
106
|
-
- script: brew install ffmpeg && brew tap wix/brew && brew install applesimutils
|
107
|
-
displayName: Install ffmpeg and applesimutils
|
108
|
-
- template: ./functional/run_appium.yml
|
109
|
-
- script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/mjpeg_server_test.rb,test/functional/ios/ios/mobile_commands_test.rb
|
110
|
-
displayName: Run tests func_test_ios_ios3
|
111
|
-
- template: ./functional/publish_test_result.yml
|
112
|
-
|
113
|
-
- job: func_test_ios_tvos
|
114
|
-
pool:
|
115
|
-
vmImage: ${{ parameters.vmImage }}
|
116
|
-
variables:
|
117
|
-
CI: ${{ parameters.ci }}
|
118
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
119
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
120
|
-
steps:
|
121
|
-
- template: ./functional/ios_setup.yml
|
122
|
-
parameters:
|
123
|
-
xcodeVersion: ${{ parameters.xcodeForTVOS }}
|
124
|
-
- template: ./functional/run_appium.yml
|
125
|
-
- script: bundle exec rake test:func:ios TESTS=test/functional/ios/tv_driver_test.rb
|
126
|
-
displayName: Run tests func_test_ios_tvos
|
127
|
-
- template: ./functional/publish_test_result.yml
|
128
|
-
|
129
|
-
# Skip since opencv4nodejs fails to install on the macOS instance
|
130
|
-
# - job: func_test_ios_opencv
|
131
|
-
# pool:
|
132
|
-
# vmImage: ${{ parameters.vmImageForIOS }}
|
133
|
-
# variables:
|
134
|
-
# CI: ${{ parameters.ci }}
|
135
|
-
# IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
136
|
-
# APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
137
|
-
# steps:
|
138
|
-
# - template: ./functional/ios_setup.yml
|
139
|
-
# parameters:
|
140
|
-
# xcodeVersion: ${{ parameters.xcodeForIOS }}
|
141
|
-
# - template: ./functional/run_appium.yml
|
142
|
-
# - script: npm install -g opencv4nodejs@5.1.0
|
143
|
-
# displayName: Install opencv4nodejs@5.1.0
|
144
|
-
# - script: bundle exec rake test:func:ios test/functional/ios/ios/image_comparison_test.rb
|
145
|
-
# displayName: Run tests
|
146
|
-
# - template: ./functional/publish_test_result.yml
|
147
|
-
|
148
|
-
|
149
|
-
- job: func_test_android_base
|
150
|
-
pool:
|
151
|
-
vmImage: ${{ parameters.vmImage }}
|
152
|
-
variables:
|
153
|
-
CI: ${{ parameters.ci }}
|
154
|
-
ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
|
155
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
156
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
157
|
-
strategy:
|
158
|
-
matrix:
|
159
|
-
uiautomator2:
|
160
|
-
AUTOMATION_NAME_DROID: 'uiautomator2'
|
161
|
-
espresso:
|
162
|
-
AUTOMATION_NAME_DROID: 'espresso'
|
163
|
-
steps:
|
164
|
-
- template: ./functional/android_setup.yml
|
165
|
-
- template: ./functional/run_appium.yml
|
166
|
-
- script: bundle exec rake test:func:android TESTS=test/functional/android/driver_test.rb,test/functional/android/patch_test.rb
|
167
|
-
displayName: Run tests func_test_android_base
|
168
|
-
- template: ./functional/publish_test_result.yml
|
169
|
-
|
170
|
-
- job: func_test_android_webdriver
|
171
|
-
pool:
|
172
|
-
vmImage: ${{ parameters.vmImage }}
|
173
|
-
variables:
|
174
|
-
CI: ${{ parameters.ci }}
|
175
|
-
ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
|
176
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
177
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
178
|
-
strategy:
|
179
|
-
matrix:
|
180
|
-
uiautomator2:
|
181
|
-
AUTOMATION_NAME_DROID: 'uiautomator2'
|
182
|
-
espresso:
|
183
|
-
AUTOMATION_NAME_DROID: 'espresso'
|
184
|
-
steps:
|
185
|
-
- template: ./functional/android_setup.yml
|
186
|
-
- template: ./functional/run_appium.yml
|
187
|
-
- script: bundle exec rake test:func:android TESTS=test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb
|
188
|
-
displayName: Run tests func_test_android_webdriver
|
189
|
-
- template: ./functional/publish_test_result.yml
|
190
|
-
|
191
|
-
- job: func_test_android_android1
|
192
|
-
pool:
|
193
|
-
vmImage: ${{ parameters.vmImage }}
|
194
|
-
variables:
|
195
|
-
CI: ${{ parameters.ci }}
|
196
|
-
ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
|
197
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
198
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
199
|
-
strategy:
|
200
|
-
matrix:
|
201
|
-
uiautomator2:
|
202
|
-
AUTOMATION_NAME_DROID: 'uiautomator2'
|
203
|
-
espresso:
|
204
|
-
AUTOMATION_NAME_DROID: 'espresso'
|
205
|
-
steps:
|
206
|
-
- template: ./functional/android_setup.yml
|
207
|
-
- template: ./functional/run_appium.yml
|
208
|
-
- script: bundle exec rake test:func:android TESTS=test/functional/android/android/device_test.rb
|
209
|
-
displayName: Run tests func_test_android_android1
|
210
|
-
- template: ./functional/publish_test_result.yml
|
211
|
-
|
212
|
-
- job: func_test_android_android2
|
213
|
-
pool:
|
214
|
-
vmImage: ${{ parameters.vmImage }}
|
215
|
-
variables:
|
216
|
-
CI: ${{ parameters.ci }}
|
217
|
-
ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
|
218
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
219
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
220
|
-
strategy:
|
221
|
-
matrix:
|
222
|
-
uiautomator2:
|
223
|
-
AUTOMATION_NAME_DROID: 'uiautomator2'
|
224
|
-
espresso:
|
225
|
-
AUTOMATION_NAME_DROID: 'espresso'
|
226
|
-
steps:
|
227
|
-
- template: ./functional/android_setup.yml
|
228
|
-
- template: ./functional/run_appium.yml
|
229
|
-
- script: bundle exec rake test:func:android TESTS=test/functional/android/android/search_context_test.rb,test/functional/android/android/mjpeg_server_test.rb
|
230
|
-
displayName: Run tests func_test_android_android2
|
231
|
-
- template: ./functional/publish_test_result.yml
|
232
|
-
|
233
|
-
- job: func_test_android_android3
|
234
|
-
pool:
|
235
|
-
vmImage: ${{ parameters.vmImage }}
|
236
|
-
variables:
|
237
|
-
CI: ${{ parameters.ci }}
|
238
|
-
ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
|
239
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
240
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
241
|
-
strategy:
|
242
|
-
matrix:
|
243
|
-
uiautomator2:
|
244
|
-
AUTOMATION_NAME_DROID: 'uiautomator2'
|
245
|
-
espresso:
|
246
|
-
AUTOMATION_NAME_DROID: 'espresso'
|
247
|
-
steps:
|
248
|
-
- template: ./functional/android_setup.yml
|
249
|
-
- template: ./functional/run_appium.yml
|
250
|
-
- script: bundle exec rake test:func:android TESTS=test/functional/android/android/device_data_test.rb
|
251
|
-
displayName: Run tests func_test_android_android3
|
252
|
-
- template: ./functional/publish_test_result.yml
|
253
|
-
|
254
|
-
- job: func_test_android_mobile_command_espresso
|
255
|
-
pool:
|
256
|
-
vmImage: ${{ parameters.vmImage }}
|
257
|
-
variables:
|
258
|
-
CI: ${{ parameters.ci }}
|
259
|
-
ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
|
260
|
-
AUTOMATION_NAME_DROID: espresso
|
261
|
-
IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
262
|
-
APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
263
|
-
strategy:
|
264
|
-
matrix:
|
265
|
-
uiautomator2:
|
266
|
-
AUTOMATION_NAME_DROID: 'uiautomator2'
|
267
|
-
espresso:
|
268
|
-
AUTOMATION_NAME_DROID: 'espresso'
|
269
|
-
steps:
|
270
|
-
- template: ./functional/android_setup.yml
|
271
|
-
- template: ./functional/run_appium.yml
|
272
|
-
- script: bundle exec rake test:func:android TESTS=test/functional/android/android/mobile_commands_test.rb
|
273
|
-
displayName: Run tests func_test_android_mobile_command_espresso
|
274
|
-
- template: ./functional/publish_test_result.yml
|
275
|
-
|
276
|
-
# Skip since opencv4nodejs fails to install on the macOS instance
|
277
|
-
# - job: func_test_android_opencv
|
278
|
-
# pool:
|
279
|
-
# vmImage: ${{ parameters.vmImage }}
|
280
|
-
# variables:
|
281
|
-
# CI: ${{ parameters.ci }}
|
282
|
-
# ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
|
283
|
-
# IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
|
284
|
-
# APPIUM_VERSION: ${{ parameters.appiumVersion }}
|
285
|
-
# strategy:
|
286
|
-
# matrix:
|
287
|
-
# uiautomator2:
|
288
|
-
# AUTOMATION_NAME_DROID: 'uiautomator2'
|
289
|
-
# espresso:
|
290
|
-
# AUTOMATION_NAME_DROID: 'espresso'
|
291
|
-
# steps:
|
292
|
-
# - template: ./functional/android_setup.yml
|
293
|
-
# - template: ./functional/run_appium.yml
|
294
|
-
# - script: npm install -g opencv4nodejs@5.1.0
|
295
|
-
# displayName: Install opencv4nodejs@5.1.0
|
296
|
-
# - script: bundle exec rake test:func:android TESTS=test/functional/android/android/image_comparison_test.rb
|
297
|
-
# displayName: Run tests func_test_android_opencv
|
298
|
-
# - template: ./functional/publish_test_result.yml
|
data/docs/mobile_command.md
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
# Mobile Command
|
2
|
-
|
3
|
-
Appium has `mobile:` command.
|
4
|
-
We can invoke them via `execute_script` command with `mobile:` arguments.
|
5
|
-
|
6
|
-
- root:
|
7
|
-
- https://github.com/appium/appium/blob/master/commands-yml/commands/mobile-command.yml
|
8
|
-
- Android:
|
9
|
-
- https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android
|
10
|
-
- iOS:
|
11
|
-
- https://github.com/appium/appium/tree/master/docs/en/writing-running-appium/ios
|
12
|
-
|
13
|
-
|
14
|
-
```ruby
|
15
|
-
# Android shell : https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/android-shell.md
|
16
|
-
args = { command: 'echo', args: 'list' }
|
17
|
-
@driver.execute_script 'mobile: shell', args # Run `adb shell echo 'list'`
|
18
|
-
|
19
|
-
# iOS performance : https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/ios/ios-xctest-performance.md
|
20
|
-
args = { timeout: 60 * 1000, profileName: 'Activity Monitor' }
|
21
|
-
@driver.execute_script 'mobile: startPerfRecord', args
|
22
|
-
|
23
|
-
@driver.execute_script 'mobile: stopPerfRecord', { profileName: 'Activity Monitor' }
|
24
|
-
```
|
25
|
-
|
26
|
-
Mobile commands return their error messages. As a selenium client, it usually handles as unknown error.
|
27
|
-
To handle it, we would recommend you to handle the error based on the error message.
|
28
|
-
|
29
|
-
```ruby
|
30
|
-
error = assert_raises ::Selenium::WebDriver::Error::UnknownError do
|
31
|
-
@driver.execute_script 'mobile: scrollToPage', { element: el.id, scrollToPage: -100 }
|
32
|
-
end
|
33
|
-
assert error.message.include? 'be a non-negative integer'
|
34
|
-
```
|