Compare commits

..
Author SHA1 Message Date
dpgraham 9f0ff7a82d v1.17.0-rc.2 2020-03-11 16:11:16 -07:00
dpgraham 8344a948be Update shrinkwrap 2020-03-11 16:09:54 -07:00
dpgraham 36811861ad v1.17.0-rc.1 2020-03-04 10:00:06 -08:00
dpgraham a5a0bef76b Re-install shrinkwrap 2020-03-04 09:59:28 -08:00
dpgraham e14a86453b Stop checking pruned shrinkwrap 2020-02-25 10:41:44 -08:00
dpgraham 8b29f1c819 1.17.0 release candidate 0 2020-02-25 10:39:13 -08:00
911 changed files with 24248 additions and 51639 deletions
+2 -8
View File
@@ -1,8 +1,2 @@
**/coverage/**
**/node_modules/**
examples/javascript-wd
**/build/**
**/*.min.js
sample-code
**/*.d.ts
**/build-fixtures/**
coverage
node_modules
+1 -41
View File
@@ -1,43 +1,3 @@
{
"extends": "@appium/eslint-config-appium",
"overrides": [
{
"files": "packages/fake-driver/**/*",
"rules": { "require-await": "off" }
},
{ "files": "packages/support/**/*", "globals": { "BigInt": "readonly" } },
{
"files": "packages/*/test/**/*",
"rules": { "func-names": "off" }
},
{
"files": "./packages/*/scripts/**/*.js",
"parserOptions": {
"sourceType": "script"
}
},
{
"files": "./packages/*/test/**/*.js",
"rules": {
"no-restricted-properties": [
"error",
{
"object": "sinon",
"property": "spy",
"message": "Use `sandbox = sinon.createSandbox()` and `sandbox.spy()` instead. Don't forget to call `sandbox.restore()` in `afterEach`"
},
{
"object": "sinon",
"property": "stub",
"message": "Use `sandbox = sinon.createSandbox()` and `sandbox.stub()` instead. Don't forget to call `sandbox.restore()` in `afterEach`"
},
{
"object": "sinon",
"property": "mock",
"message": "Use `sandbox = sinon.createSandbox()` and `sandbox.mock()` instead. Don't forget to call `sandbox.restore()` in `afterEach`"
}
]
}
}
]
"extends": "appium"
}
-40
View File
@@ -1,40 +0,0 @@
# Generated by FOSSA CLI (https://github.com/fossas/fossa-cli)
# Visit https://fossa.com to learn more
version: 3
project:
id: github.com/appium/appium
name: appium
paths:
exclude:
- ./sample-code
- '**/fixtures/**'
- '**/demo/**'
- '**/example/**'
- '**/examples/**'
targets:
only:
- type: npm
path: .
- type: npm
path: ./packages/appium
- type: npm
path: ./packages/base-driver
- type: npm
path: ./packages/doctor
- type: npm
path: ./packages/eslint-config-appium
- type: npm
path: ./packages/fake-driver
- type: npm
path: ./packages/gulp-plugins
- type: npm
path: ./packages/support
- type: npm
path: ./packages/test-support
revision:
branch: 2.0
+2 -2
View File
@@ -28,6 +28,6 @@ If you are reporting a bug, _always_ include Appium logs!
Please remember that with sample code it's easier to reproduce the bug and it's much faster to fix it.
Please git clone https://github.com/appium/appium and from the `examples` directory, use one of your favourite languages and sample apps to reproduce the issue.
Please git clone https://github.com/appium/appium and from the `sample-code` directory, use one of your favourite languages and sample apps to reproduce the issue.
In case a similar scenario is missing in examples, please submit a PR with one of the sample apps provided.
In case a similar scenario is missing in sample-code, please submit a PR with one of the sample apps provided.
-20
View File
@@ -1,20 +0,0 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/sample-code/javascript-webdriverio"
schedule:
interval: daily
time: "11:00"
open-pull-requests-limit: 10
- package-ecosystem: npm
directory: "/sample-code/javascript-wd"
schedule:
interval: daily
time: "11:00"
open-pull-requests-limit: 10
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
time: "11:00"
open-pull-requests-limit: 10
-51
View File
@@ -1,51 +0,0 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Appium Build
on: [push, pull_request]
jobs:
test:
name: Test
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x, 16.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install latest npm
run: npm install -g npm
- name: Install dependencies
run: npm install
- name: Run unit tests
run: npm run test:ci
- name: Install @appium/fake-driver
run: npm run install-fake-driver
- name: Run E2E tests
run: npm run e2e-test
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: ESLint
run: npm run lint
docs:
name: Build Command Documentation
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Generate docs
run: npm run generate-docs
-21
View File
@@ -1,21 +0,0 @@
name: License Checks
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
fossa-check:
name: Run FOSSA Analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: '2.0'
- name: fossa analyze
run: |
npm install
curl -sS -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install-latest.sh | bash
fossa analyze
fossa test
env:
FOSSA_API_KEY: ${{secrets.FOSSA_API_KEY}}
+14 -19
View File
@@ -8,10 +8,10 @@ xcuserdata
*.sublime-*
test/functional/_joined
*.iml
!examples/java/*.iml
!sample-code/java/*.iml
*.autosave
.idea/
!examples/java/.idea/
!sample-code/java/.idea/
*.log
*.t
artifacts
@@ -40,21 +40,16 @@ old
.tern-project
coverage
docs/mkdocs.yml
examples/javascript-wd/node_modules
examples/php/vendor
examples/php/composer.lock
examples/java/out/
examples/ruby/Gemfile.lock
examples/python/test/results/
examples/python/test/input
examples/python/.pytest_cache/
examples/csharp/test/bin
examples/csharp/test/obj
examples/csharp/test/bin
examples/csharp/packages
sample-code/javascript-wd/node_modules
sample-code/php/vendor
sample-code/php/composer.lock
sample-code/java/out/
sample-code/ruby/Gemfile.lock
sample-code/python/test/results/
sample-code/python/test/input
sample-code/python/.pytest_cache/
sample-code/csharp/test/bin
sample-code/csharp/test/obj
sample-code/csharp/test/bin
sample-code/csharp/packages
appium.zip
.vscode/settings.json
.nyc_output
*.lerna_backup
**/build-fixtures/**
-12
View File
@@ -1,12 +0,0 @@
// @ts-check
'use strict';
module.exports = {
require: [
require.resolve('./test/setup.js')
],
// forbids use of .only() in CI
forbidOnly: Boolean(process.env.CI),
color: true
};
+1 -3
View File
@@ -1,4 +1,2 @@
# Do not disable package-lock. Disabling package-lock also disables npm-shrinkwrap
package-lock=true
save-exact=true
package-lock=true
+58
View File
@@ -0,0 +1,58 @@
language: node_js
node_js: "10"
os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- build-essential
env:
global:
- CXX=g++-4.8
cache:
npm: false
jobs:
include:
- stage: Tests
name: node 10
before_script: npm outdated || true
script: npm run test && npm run e2e-test
after_script: npm run coverage
- stage:
name: node 12
before_script: npm outdated || true
script: npm run test && npm run e2e-test
node_js: "12"
- stage:
name: test documentation generation
script: npm run generate-docs
- stage: Sample Code
name: JavaScript (wd)
# only want to run this on the main master branch
if: branch = master AND type != pull_request
env:
- SAUCE_LABS=1
install:
- cd sample-code/javascript-wd
- npm install
script:
- npm run test
- stage:
name: Python
# only want to run this on the main master branch
if: branch = master AND type != pull_request
language: python
python: "3.6"
env:
- SAUCE_LABS=1
before_install:
- pip install --upgrade pip
install:
- cd sample-code/python
- pip install -r requirements.txt
- pip install pytest-xdist
script:
- py.test -v -n 30 test
+45 -22
View File
@@ -1,23 +1,46 @@
{
"version": "0.2.0",
"configurations": [
{
"args": ["--colors", "--timeout", "0", "${file}"],
"internalConsoleOptions": "openOnSessionStart",
"name": "Test - Current File",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"runtimeArgs": ["--require", "@babel/register"],
"request": "launch",
"skipFiles": ["<node_internals>/**", "**/node_modules/mocha/**"],
"type": "pwa-node",
"sourceMaps": true,
"cwd": "${workspaceFolder}",
"outfiles": [],
"env": {
"NODE_ENV": "test",
"BABEL_ENV": "test"
},
"autoAttachChildProcesses": true,
}
]
}
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"args": [
"."
]
},
{
"name": "Attach Debug",
"type": "node",
"request": "attach",
"cwd": "${workspaceFolder}",
"port": 9229
},
{
"name": "Test All",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/node_modules/.bin/_mocha",
"args": [
"--require", "babel-core/register",
"--timeout", "999999",
"--colors",
"${workspaceFolder}/test"
]
},
{
"name": "Test Current File",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/node_modules/.bin/_mocha",
"args": [
"--require", "babel-core/register",
"--timeout", "999999",
"--colors",
"${file}"
]
}
]
}
-136
View File
@@ -1,136 +0,0 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "dev",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [],
"label": "npm: dev",
"detail": "lerna exec --parallel gulp dev",
"isBackground": true,
},
{
"type": "shell",
"command": "npm",
"args": [
"exec",
"--",
"lerna",
"exec",
"--scope=@appium/fake-driver",
"--",
"gulp",
"transpile"
],
"label": "transpile: @appium/fake-driver",
"problemMatcher": []
},
{
"type": "shell",
"command": "npm",
"args": [
"exec",
"--",
"lerna",
"exec",
"--scope=appium",
"--",
"gulp",
"transpile"
],
"label": "transpile: appium",
"problemMatcher": []
},
{
"type": "shell",
"command": "npm",
"args": [
"exec",
"--",
"lerna",
"exec",
"--scope=@appium/support",
"--",
"gulp",
"transpile"
],
"label": "transpile: @appium/support",
"problemMatcher": []
},
{
"type": "shell",
"command": "npm",
"args": [
"exec",
"--",
"lerna",
"exec",
"--scope=@appium/test-support",
"--",
"gulp",
"transpile"
],
"label": "transpile: @appium/test-support",
"problemMatcher": []
},
{
"type": "shell",
"command": "npm",
"args": [
"exec",
"--",
"lerna",
"exec",
"--scope=@appium/gulp-plugins",
"--",
"gulp",
"transpile"
],
"label": "transpile: @appium/gulp-plugins",
"problemMatcher": []
},
{
"type": "shell",
"command": "npm",
"args": [
"exec",
"--",
"lerna",
"exec",
"--scope=@appium/doctor",
"--",
"gulp",
"transpile"
],
"label": "transpile: @appium/doctor",
"problemMatcher": []
},
{
"type": "shell",
"command": "npm",
"args": [
"exec",
"--",
"lerna",
"exec",
"--scope=@appium/base-driver",
"--",
"gulp",
"transpile"
],
"label": "transpile: @appium/base-driver",
"problemMatcher": []
},
{
"type": "npm",
"script": "test:e2e:appium",
"problemMatcher": [],
"label": "npm: test:e2e:appium",
"detail": "e2e tests: appium"
}
]
}
-66
View File
@@ -1,66 +0,0 @@
'use strict';
module.exports = (wallaby) => {
return {
compilers: {
'**/*.js': wallaby.compilers.babel(),
},
debug: true,
env: {
type: 'node',
},
files: [
'./packages/**/*.js',
'./packages/**/*.json',
'!./packages/**/build/**',
'!./packages/**/test/**/*-specs.js',
'!./packages/**/test/**/*.spec.js',
'!./packages/*/node_modules/**',
'!./packages/*/gulpfile.js',
'!./packages/*/scripts/**',
'./packages/*/test/**/fixtures/**/*',
'./packages/*/test/**/mocks.js',
'./packages/*/test/helpers.js',
'./babel.config.json',
// below this are fixtures
{
binary: true,
pattern: './packages/support/test/unit/assets/sample_binary.plist',
},
{
instrument: false,
pattern: './packages/support/test/unit/assets/sample_text.plist',
},
{
instrument: false,
pattern: './packages/base-driver/static/**/*',
},
{
instrument: false,
pattern: './packages/gulp-plugins/build/**/*',
},
// this setup file is special
{
instrument: false,
pattern: './test/setup.js'
}
],
testFramework: 'mocha',
tests: [
'./packages/*/test/**/*-specs.js',
'./packages/*/test/unit/**/*.spec.js',
'!./packages/*/test/**/*-e2e-specs.js',
'!./packages/*/test/e2e/**/*',
'!./packages/*/node_modules/**',
// this is more of an E2E test and it's tedious to run
'!./packages/gulp-plugins/test/transpile-specs.js',
],
workers: {
restart: true,
},
setup() {
require('./test/setup');
},
runMode: 'onsave'
};
};
-330
View File
@@ -1,333 +1,3 @@
CHANGES IN VERSION 1.20.0 (FROM 1.19.1)
===================================
Appium 1.20.0 is a minor release
### General
* Does not destory sockets explicitly against a client [appium-base-driver#437](https://github.com/appium/appium-base-driver/pull/437)
* Connection timeout to each driver respects `--keep-alive-timeout` configuration [appium-base-driver#443](https://github.com/appium/appium-base-driver/pull/443). Default to 10 minutes
### Android General
* `InvalidContextError` error is thrown if running instrumentation process was dead
* Fix Android emulator config paths on Windows [appium-adb#558](https://github.com/appium/appium-adb/pull/558)
### Android(UIAutomator2)
* Appium adds `io.appium.settings`, `io.appium.uiautomator2.server` and `io.appium.uiautomator2.server.test` as the device's Doze whitelist to keep working [appium-uiautomator2-driver#420](https://github.com/appium/appium-uiautomator2-driver/pull/420)
* Add settings:
* `useResourcesForOrientationDetection` to use application resource propertires to determine the current device orientation [appium-uiautomator2-server#389](https://github.com/appium/appium-uiautomator2-server/pull/389)
### Android(Espresso)
* Appium adds `io.appium.settings` and `io.appium.espressoserver.test` as the device's Doze whitelist to keep working [appium-espresso-driver#627](https://github.com/appium/appium-espresso-driver/pull/627)
* Add `mobile:` extensions:
* `uiautomatorPageSource` returns the page source dump by UIAutomator [appium-espresso-driver#628](https://github.com/appium/appium-espresso-driver/pull/628)
* Improves XPath lookup performance [appium-espresso-driver#637](https://github.com/appium/appium-espresso-driver/pull/637)
### iOS General
* Fix updating simulator preference method [appium-ios-simulator#298](https://github.com/appium/appium-ios-simulator/pull/298)
### iOS(XCUITest)
* Support M1 chip based Mac, Xcode 12.3
* Snapshots caching logic has been rewritten to improve lookup performance e.g. [WebDriverAgent#404](https://github.com/appium/WebDriverAgent/pull/404), [WebDriverAgent#407](https://github.com/appium/WebDriverAgent/pull/407)
* Breaking changes
* Support over Xcode 10.2, iOS 12.2 (Drop supporting Xcode 10.0 and 10.1)
* `accessibility id`, `name` and `id` lookup strategies now find elements by `name`(`wdName`) attributes in page source: [WebDriverAgent#414](https://github.com/appium/WebDriverAgent/pull/414)
* Previously, they found elements by `name`(`wdName`) and `value`(`wdValue`)
* Please use `predicate` strategy to find `value`(`wdValue`) attribute like [this change](https://github.com/appium/ruby_lib_core/pull/282)
* Add capabilities:
* `resultBundlePath` and `resultBundleVersion` to allow to specify the path to the result bundle of WebDriverAgent xcodebuild [WebDriverAgent#410](https://github.com/appium/WebDriverAgent/pull/410)
* `safariIgnoreWebHostnames` to provide a list of hostnames that the Safari automation tools should ignore [appium-xcuitest-driver#1258](https://github.com/appium/appium-xcuitest-driver/pull/
1258)
* `waitForIdleTimeout` (Please read the below settings section)
* Add settings: (Please read [Settings API](http://appium.io/docs/en/advanced-concepts/settings/index.html) for more details)
* `customSnapshotTimeout` which was renamed from `snapshotTimeout` sets how much time is allowed to resolve a single accessibility snapshot with custom attributes
* `waitForIdleTimeout` to customize the time for waiting until the application under test is idling
* The value `zero` (not recommended) is equal to `waitForQuiescence` to `false`
* **Important**: this is still a workaround, so there is no guarantee it is going to always work. Please consider rather fixing your application source code, because XCTest uses idle intervals to send commands to the accessibility manager. You may get unexpected testing results or application crashes if such intervals don't exist or are too tiny.
* `animationCoolOffTimeout` customize the timeout to wait until the application under test has no animation
* Add a possibility to select elements by indexes [WebDriverAgent#417](https://github.com/appium/WebDriverAgent/pull/417)
* Fix parsing SSL output from OpenSSL output [appium-xcuitest-driver#1256](https://github.com/appium/appium-xcuitest-driver/pull/1256)
### iOS(Safari)
This driver provides you to communicate with Apple's `safaridriver` binary via Appium.
It only supports Safari browser automation on macOS and iOS (Simulator/Real Device).
Read https://github.com/appium/appium-safari-driver for more details.
### Mac2
This driver provides you to handle macOS native applications with Apple's `XCTest` framework.
Read https://github.com/appium/appium-mac2-driver for more details.
### Gecko
This driver provides you to communicate with Firefox browsers on macOS, Windows, Linux and Android with geckodriver binary via Appium.
Read https://github.com/appium/appium-geckodriver for more details to set the environment up.
CHANGES IN VERSION 1.19.1(FROM 1.19.0)
===================================
Appium 1.19.1 is a patch release
### iOS(XCUITest)
Patches "missing target for targetId" bug in Safari tests (see [#14867](https://github.com/appium/appium/issues/14867))
CHANGES IN VERSION 1.19.0 (FROM 1.18.3)
===================================
Appium 1.19.0 is a minor release
### Android General
* Add capabilities:
* `allowDelayAdb` to prevent `-delay-adb` command line option to detect emulator startup [#14773](https://github.com/appium/appium/issues/14773)
* Add `mobile:` functions:
* `mobile:getContexts` to get WebView details [appium-android-driver#662](https://github.com/appium/appium-android-driver/pull/662)
* Accept Web Authentication routes (they are part of W3C) [appium-base-driver#433](https://github.com/appium/appium-base-driver/pull/433)
* Change to enable `ensureWebviewsHavePages` by default [appium-android-driver#652](https://github.com/appium/appium-android-driver/pull/652)
* Change to close pending requests on the server side if the server is terminated [appium-base-driver#424](https://github.com/appium/appium-base-driver/pull/424)
* Fix CPU performance data parsing [appium-android-driver#659](https://github.com/appium/appium-android-driver/pull/659)
* Fix possible memory leak [appium-base-driver#430](https://github.com/appium/appium-base-driver/pull/430)
* Fix responses to unexpected server errors [appium-base-driver#432](https://github.com/appium/appium-base-driver/pull/432)
### Android(UIAutomator2)
* Add `mobile:` functions:
* `mobile:dragGesture`, `mobile:flingGesture`, `mobile:longClickGesture`, `mobile:pinchCloseGesture`, `mobile:pinchOpenGesture`, `mobile:swipeGesture` and `mobile:scrollGesture`: [Automating Mobile Gestures With UiAutomator2 Backend](https://appium.io/docs/en/writing-running-appium/android/android-mobile-gestures/)
* Add css selector support [appium-uiautomator2-driver#410](https://github.com/appium/appium-uiautomator2-driver/pull/410)
* `css selector` will be converted to `-android uiautomator` selector in UIAutomator2. Read [appium-uiautomator2-driver#410](https://github.com/appium/appium-uiautomator2-driver/pull/410) for more details.
* Enhance XPath lookup performance [appium-uiautomator2-server#386](https://github.com/appium/appium-uiautomator2-server/pull/386)
* Fix port guard logic to avoid port conflict [appium-uiautomator2-driver#409](https://github.com/appium/appium-uiautomator2-driver/pull/409)
### Android(Espresso)
* Raise `InvalidContextError` error when the app under test stops because of instrumentation process crashes (appium-espresso-driver#591)[https://github.com/appium/appium-espresso-driver/pull/591]
* Add a possibility to allow JSON formatted string as `espressoBuildConfig` capability [appium-espresso-driver#609](https://github.com/appium/appium-espresso-driver/pull/609)
* Add `mobile:` functions:
* `mobile:registerIdlingResources`, `mobile:unregisterIdlingResources` and `mobile:listIdlingResources` to customize idling resources [appium-espresso-driver#597](https://github.com/appium/appium-espresso-driver/pull/597)
* Add a custom exception description, which helps to debug issues when the application under test is not idling long enough [appium-espresso-driver#589](https://github.com/appium/appium-espresso-driver/pull/589)
* The `com.google.android.material` dependency became optional [appium-espresso-driver#616](https://github.com/appium/appium-espresso-driver/pull/616)
* `espressoBuildConfig` now allows to prevent custom dependencies for both categories: `additionalAppDependencies` and `additionalAndroidTestDependencies`. Please check [caps](https://appium.io/docs/en/writing-running-appium/caps/).
* `mobile:navigateTo` requires `com.google.android.material`, so please add `"espressoBuildConfig": "{\"additionalAndroidTestDependencies\":[\"com.google.android.material:material:1.2.1\"]}"` as your capabilities if needed
* Fix to exclude transitive dependencies of espresso-contrib[appium-espresso-driver#596](https://github.com/appium/appium-espresso-driver/pull/596)
* Fix to be able to build with SDK 29 [appium-espresso-driver#604](https://github.com/appium/appium-espresso-driver/pull/604)
### iOS(general)
* Improve the performane of simulator state state checks [appium-ios-simulator#284](https://github.com/appium/appium-ios-simulator/pull/284)
* Fix granting access to Calendar on Xcode 11.4 and later [appium-ios-simulator#288](https://github.com/appium/appium-ios-simulator/pull/288)
* Adjust the decimal separator in the Simulator location setting script according to system locale settings [appium-ios-simulator#295](https://github.com/appium/appium-ios-simulator/pull/295)
### iOS(XCUITest)
* Add capabilities:
* `simulatorDevicesSetPath` allows to set an alternative path to a Simulator devices set [appium-ios-simulator#290](https://github.com/appium/appium-ios-simulator/pull/290)
* `allowProvisioningDeviceRegistration` adds `-allowProvisioningUpdates` and `-allowProvisioningDeviceRegistration` flag to the list of xcodebuild arguments [appium-xcuitest-driver#1241](https://github.com/appium/appium-xcuitest-driver/pull/1241)
* Add mobile functions:
* `mobile:resetPermission` to reset all previous allowed or denied permissions for the application under test. It requires Xcode 11.4 and later [https://github.com/appium/appium-xcuitest-driver#1239](https://github.com/appium/appium-xcuitest-driver/pull/1239), [WebDriverAgent#392](https://github.com/appium/WebDriverAgent/pull/392)
* Add `velocity` argument for over Xcode 11.4 in `mobile:swipe` [appium#14793](https://github.com/appium/appium/pull/14793)
* Enhance performance
* e.g. improve taking snapshot to get elements [WebDriverAgent#393](https://github.com/appium/WebDriverAgent/pull/393)
* Fix alert handling in some cases [WebDriverAgent#400](https://github.com/appium/WebDriverAgent/pull/400)
### Flutter
The version is `0.25`
### You.i Engine Driver
The version is `1.2.7`
CHANGES IN VERSION 1.18.2 and 1.18.3 (FROM 1.18.1)
===================================
Appium 1.18.2 and 1.18.3 are patch releases
* Supports Xcode 12 + iOS 14
### iOS(XCUITest)
* Allow to input text by send keys API without focus check for newer Xcode versions [WebDriverAgent#379](https://github.com/appium/WebDriverAgent/pull/379)
* Add supports `xcrun xctrace` instead of `instruments` command for Xcode 12+ [appium-xcuitest-driver#1223](https://github.com/appium/appium-xcuitest-driver/pull/1223)
CHANGES IN VERSION 1.18.1 (FROM 1.18.0)
===================================
Appium 1.18.1 is a patch release
#### Android General
* Fix to properly clean up forwarded ports if parallel sessions are running [appium-chromedriver#183](https://github.com/appium/appium-chromedriver/pull/183)
* Fix to avoid a redundant Chromedriver download operation if a matching driver is already present [appium-chromedriver#186](https://github.com/appium/appium-chromedriver/pull/186)
#### Android (UiAutomator2)
* Fix to return a proper response for missing route [appium/appium-uiautomator2-server#373](https://github.com/appium/appium-uiautomator2-server/pull/373)
* Fix to allow double values as touch action coordinates [ appium/appium-uiautomator2-server#372](https://github.com/appium/appium-uiautomator2-server/pull/372)
* Fix [#14586](https://github.com/appium/appium/issues/14586) which might affect XPath locators executed on elemetns, retrieved from nested lookup requests [appium/appium-uiautomator2-server#372](https://github.com/appium/appium-uiautomator2-server/pull/371)
* A known issue in 1.18.0
CHANGES IN VERSION 1.18.0 (FROM 1.17.1)
===================================
Appium 1.18.0 is a minor release
#### General
* Add `score` attribute for ImageElement [appium-base-driver#396](https://github.com/appium/appium-base-driver/pull/396)
* Add a route to be able to execute Chrome DevTools commands to downstream drivers [appium-base-driver#405](https://github.com/appium/appium-base-driver/pull/405)
* e.g. Clients can send `/session/:sessionId/goog/cdp/execute` command to Chromedriver
* Fix socket leak by handling connections in a shared pool [appium-base-driver#416](https://github.com/appium/appium-base-driver/pull/416)
* Fix to encode filenames with UTF-8 while extracting `.ipa` packages [appium-base-driver#419](https://github.com/appium/appium-base-driver/pull/419)
* The change fixes `.ipa` packages deployment that contain file names containing non-ASCII characters like [this issue](https://github.com/appium/appium/issues/14100)
#### Android General
* Add capabilities:
* `mockLocationApp` to make location mock configurable [appium-android-driver#632](https://github.com/appium/appium-android-driver/pull/632)
* `logcatFormat`, `logcatFilterSpecs` to allow logcat output format customization [appium-adb#528](https://github.com/appium/appium-adb/pull/528)
* `ignoreHiddenApiPolicyError` to ignore permission error when hidden api policy change happens [appium-adb#507](https://github.com/appium/appium-adb/pull/507)
* Add `mobile:` functions:
* `mobile: getDeviceTime` to get the device time [appium-android-driver#623](https://github.com/appium/appium-android-driver/pull/623)
* `mobile: execEmuConsoleCommand` to send [emulator console commands](https://developer.android.com/studio/run/emulator-console) [appium-android-driver#517](https://github.com/appium/appium-adb/pull/517) [#630](https://github.com/appium/appium-android-driver/pull/630)
* `mobile: deleteFile` to delete a file [appium-android-driver#634](https://github.com/appium/appium-android-driver/pull/634)
* `mobile: startService` and `mobile: stopService` to start or stop services via [adb shell commands](https://stackoverflow.com/questions/7415997/how-to-start-and-stop-android-service-from-a-adb-shell) [appium-android-driver#647](https://github.com/appium/appium-android-driver/pull/647)
* Add including native context log for getLog command [appium-android-driver#646](https://github.com/appium/appium-android-driver/pull/646)
* Fix tapping by element coordinate [appium-android-driver#355](https://github.com/appium/appium-android-driver/pull/355)
#### Android (UiAutomator2)
* Add capabilities:
* `disableSuppressAccessibilityService` to control [FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES]((https://developer.android.com/reference/android/app/UiAutomation#FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES)) flag [appium-uiautomator2-driver#376](https://github.com/appium/appium-uiautomator2-driver/pull/376)
waitForLaunch
* `mjpegServerPort` to customize MJPEG server port [appium-uiautomator2-driver#386](https://github.com/appium/appium-uiautomator2-driver/pull/386)
* Add `mobile:` functions:
* `mobile: sensorSet` to set sensor [appium-uiautomator2-driver#378](https://github.com/appium/appium-uiautomator2-driver/pull/378)
* `mobile: scroll` to allow to scroll action in some ways. Please read [appium-uiautomator2-driver](https://github.com/appium/appium-uiautomator2-driver/blob/master/lib/commands/general.js) for more details. [appium-uiautomator2-driver#385](https://github.com/appium/appium-uiautomator2-driver/pull/385)
* `mobile: deepLink` to send deeplink command with `waitForLaunch` option to handle the wait for logic [appium-uiautomator2-driver#389](https://github.com/appium/appium-uiautomator2-driver/pull/389)
* `mobile: viewportRect` to return view port rectangle [appium-uiautomator2-driver#404](https://github.com/appium/appium-uiautomator2-driver/pull/404)
* Known issue
* [#14586](https://github.com/appium/appium/issues/14586): [Root element fix](https://github.com/appium/appium-uiautomator2-server/pull/363) might affect XPath locators executed on elements, retrieved from nested lookup requests (the document root for such elements is now the element itself rather than a fake `hierarchy` root)
#### Android (Espresso)
* Add capabilities:
* `disableSuppressAccessibilityService` to control [FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES]((https://developer.android.com/reference/android/app/UiAutomation#FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES)) flag [appium-espresso-driver#559](https://github.com/appium/appium-espresso-driver/pull/559)
* `appLocale` to set [Locale](https://developer.android.com/reference/java/util/Locale) for [the target context](https://developer.android.com/reference/androidx/test/core/app/ApplicationProvider#getApplicationContext()) [appium-espresso-driver#580](https://github.com/appium/appium-espresso-driver/pull/580)
* Add `mobile:` functions:
* `mobile: sensorSet` to set sensor [appium-espresso-driver](https://github.com/appium/appium-espresso-driver/pull/560)
### iOS (XCUITest)
* Add Xcode 12 beta and iOS 14 support
* Add settings:
* `boundElementsByIndex` for bounding strategy to lookup elements [WebDriverAgent#357](https://github.com/appium/WebDriverAgent/pull/357)
* Add XCTest `mobile:` functions: [appium-xcuitest-driver#1205](https://github.com/appium/appium-xcuitest-driver/pull/1205). Please read [test code](https://github.com/appium/appium-xcuitest-driver/blob/master/test/functional/device/xctest-e2e-specs.js) as an example.
* `mobile: runXCTest` to run XCTest bundle
* `mobile: installXCTestBundle` to install the xctest bundle
* `mobile: listXCTestBundles` to get list of xctests within bundle
* `mobile: listXCTestsInTestBundle` to return the list of XCTest bundles
* Add audio recording for simulators and real devices [appium-xcuitest-driver#1207](https://github.com/appium/appium-xcuitest-driver/pull/1207)
* Read [Audio Capture From iOS Simulators and Real Devices](https://appium.io/docs/en/writing-running-appium/ios/audio-capture/)
* Add prebuilt WebDriverAgentRunner snapshots to speed up tests execution on iOS Simulator in `appium-webdriveragend` npm package [WebDriverAgent#331](https://github.com/appium/WebDriverAgent/pull/331)
* The path is `appium/node_modules/appium-webdriveragend/WebDriverAgentRunner-Runner.app.zip`
* The usage is:
```bash
idb install /WebDriverAgentRunner-Runner.app --udid <device-udid>
idb launch com.facebook.WebDriverAgentRunner.xctrunner
```
* Fix a memory leak by removing unnecessary dependencies [WebDriverAgent#348](https://github.com/appium/WebDriverAgent/pull/348) [WebDriverAgent#350](https://github.com/appium/WebDriverAgent/pull/350) [WebDriverAgent#351](https://github.com/appium/WebDriverAgent/pull/351)
* Fix respecting `webDriverAgentUrl` in favor of `wdaLocalPort` and `wdaBaseUrl` for real devices [WebDriverAgent#342](https://github.com/appium/WebDriverAgent/pull/342)
* Fix ignoring the case where process locking the socket is not alive [WebDriverAgent#339](https://github.com/appium/WebDriverAgent/pull/339)
* Fix to improve alert buttons detection [WebDriverAgent#322](https://github.com/appium/WebDriverAgent/pull/322)
### Windows
* Add video recording [appium-windows-driver#66](https://github.com/appium/appium-windows-driver/pull/66)
* Add findByImage [appium-windows-driver#67](https://github.com/appium/appium-windows-driver/pull/67)
CHANGES IN VERSION 1.17.1 (FROM 1.17.0)
===================================
Appium 1.17.1 is a patch release
### iOS (XCUITest)
* feature: get idb working under launchWithIDB cap (https://github.com/appium/appium-xcuitest-driver/pull/1193)
* feature: Add mobile command to get device time (https://github.com/appium/appium-xcuitest-driver/pull/1190)
* feature: Add mobile command for tapWithNumberOfTaps (https://github.com/appium/appium-xcuitest-driver/pull/1184)
* fix: datetime retrieval for real devices (https://github.com/appium/appium-xcuitest-driver/pull/1189) (https://github.com/appium/appium-xcuitest-driver/pull/1192)
## iOS (Web)
* feature: allow safari alert with block/allow buttons to be handled (https://github.com/appium/appium-xcuitest-driver/pull/1185)
* fix: cookie functions should not get proxied to wda ever (https://github.com/appium/appium-xcuitest-driver/pull/1182)
* fix: wait for atom finish before checking for alerts (https://github.com/appium/appium-xcuitest-driver/pull/1183)
* fix: properly handle promise during wait for atom (https://github.com/appium/appium-xcuitest-driver/pull/1187)
* fix: do not send Target.exists on iOS 13.4 (https://github.com/appium/appium-remote-debugger/pull/219)
CHANGES IN VERSION 1.17.0 (FROM 1.16.0)
===================================
Appium 1.17.0 is a minor release.
#### General
* Active driver sessions are now properly cleaned up upon main Appium process termination (https://github.com/appium/appium/pull/13913)
* Preliminary support for iOS 13.4
#### iOS General
#### iOS (XCUITest)
* Fix app installation on real devices (https://github.com/appium/appium-xcuitest-driver/pull/1139) (https://github.com/appium/appium-xcuitest-driver/pull/1138) (https://github.com/appium/appium-xcuitest-driver/pull/1140) (https://github.com/appium/appium-xcuitest-driver/pull/1152) (https://github.com/appium/appium-ios-device/pull/67)
* Fix temporary log file to be more efficient (https://github.com/appium/appium-xcuitest-driver/pull/1147)
* Fix port cleanup during shutdown (https://github.com/appium/appium-xcuitest-driver/pull/1153)
* Fix starting of `idb` when used (https://github.com/appium/appium-idb/pull/20)
* Add `screenshotOrientation` as Settings API to customize screenshot orientation (https://github.com/appium/WebDriverAgent/pull/277)
* Capabilities:
* `simulatorStartupTimeout` change the default timeout for simulator startup (https://github.com/appium/appium-xcuitest-driver/pull/1163)
* `simulatorPasteboardAutomaticSync` turn on/off simulator pasteboard synching at launch (https://github.com/appium/appium-xcuitest-driver/pull/1168)
* `simulatorTracePointer` turn on/off pointer highlighting in simulators (https://github.com/appium/appium-xcuitest-driver/pull/1169)
* Add `snapshotMaxDepth` as Settings API to restrict the depth of getting the elements source tree (https://github.com/appium/WebDriverAgent/pull/273)
* Add `mobile:` functions for new `simctl` functionality in Xcode 11.4+ (https://github.com/appium/appium-xcuitest-driver/pull/1162) (https://github.com/appium/appium-ios-simulator/pull/260) (https://github.com/appium/node-simctl/pull/96)
* `mobile: setPermission`
* `mobile: getAppearance`
* `mobile: setAppearance`
* Webviews/Safari:
* Add webview bundle identifier to data returned with `fullContextList`
* Add `waitForWebviewMs` option to `mobile:getContexts` endpoint, to block for a period while waiting for webview report (https://github.com/appium/appium-xcuitest-driver/pull/1135)
* Allow SafariViewController webviews to be reached automatically (https://github.com/appium/appium-remote-debugger/pull/189) (https://github.com/appium/appium-remote-debugger/pull/197)
* Fix asynchronous execution in webview context for iOS 12.1 and below (https://github.com/appium/appium-remote-debugger/pull/199)
* Fix handling of React components whose state is handled by React (https://github.com/appium/appium-remote-debugger/pull/202)
* Fix webviews for iOS 13.3 and 13.4 (https://github.com/appium/appium-remote-debugger/pull/203) (https://github.com/appium/appium-remote-debugger/pull/204) (https://github.com/appium/appium-remote-debugger/pull/205) (https://github.com/appium/appium-remote-debugger/commit/e067f0eab012b5ef67f1ce67eb85479c4abe440b) (https://github.com/appium/appium-xcuitest-driver/pull/1174)
* Fix handling of alerts opened from webview (https://github.com/appium/appium-xcuitest-driver/pull/1176)
#### Android General
* Add `mobile:` functions:
* `mobile: listSms` to get the list of SMS (https://github.com/appium/appium-android-driver/pull/602 https://github.com/appium/appium-espresso-driver/pull/548)
* `mobile: startScreenStreaming`, `mobile: stopScreenStreaming` (https://github.com/appium/appium-espresso-driver/pull/521)
* `mobile: getNotifications` to get the list of notifications (https://github.com/appium/appium-android-driver/pull/598)
* Fix `toggle_location_services` on Android 9.0 (https://github.com/appium/appium-android-driver/pull/594)
* Add to allow letter as a `platformVersion` like `R` in preview/beta Android OS release ( https://github.com/appium/appium-android-driver/pull/607 )
* Updated emulator detection logic (https://github.com/appium/appium/pull/14015)
* Allow `mobile:` functions to perform actions in WebView contexts (https://github.com/appium/appium-uiautomator2-driver/pull/366) (https://github.com/appium/appium-espresso-driver/pull/549)
#### Android (UiAutomator2)
* Added `mobile: type` endpoint (https://github.com/appium/appium-uiautomator2-driver/pull/365)
* Tuned `sendKeys` endpoint (https://github.com/appium/appium-uiautomator2-server/pull/329)
#### Android (Espresso)
* Capabilities:
* `espressoBuildConfig` customize the espresso server build configuration (https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md#espresso-server-build-configuration-json)
* `intentOptions` customize intent for launching activities (https://github.com/appium/appium-espresso-driver/pull/542)
* `skipServerInstallation` skip espresso driver preparation (https://github.com/appium/appium-espresso-driver/pull/526)
* Add `-android viewmatcher` selector (https://github.com/appium/appium-espresso-driver/pull/516)
* Add `noMultilineButtons`, `noEllipsizedText` and `noOverlaps` as available element attributes to extend available view assertions (https://github.com/appium/appium-espresso-driver/pull/544)
* Support `open_notifications` endpoint (https://github.com/appium/appium-espresso-driver/pull/536/files)
#### Windows
#### MacOS
* Capabilities:
* `a4mHost`, `a4mPort`, `a4mAppPath` and `killAllA4MAppBeforeStart` make mac driver configurable (https://github.com/appium/appium-mac-driver/pull/42) (https://github.com/appium/appium-mac-driver/pull/44)
* Added the possibility to autodetect the location of the server app: https://github.com/appium/appium-mac-driver/pull/44
CHANGES IN VERSION 1.16.0 (FROM 1.15.1)
===================================
+12 -16
View File
@@ -1,14 +1,16 @@
## Appium
[![NPM version](https://badge.fury.io/js/appium.svg)](https://npmjs.org/package/appium)
[![Node.js CI](https://github.com/appium/appium/actions/workflows/node.js.yml/badge.svg?branch=2.0)](https://github.com/appium/appium/actions/workflows/node.js.yml)
[![Dependency Status](https://david-dm.org/appium/appium.svg)](https://david-dm.org/appium/appium)
[![devDependency Status](https://david-dm.org/appium/appium/dev-status.svg)](https://david-dm.org/appium/appium#info=devDependencies)
[![Monthly Downloads](https://img.shields.io/npm/dm/appium.svg)](https://npmjs.org/package/appium)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fappium%2Fappium.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fappium%2Fappium?ref=badge_shield)
[![Greenkeeper badge](https://badges.greenkeeper.io/appium/appium.svg)](https://greenkeeper.io/)
Appium is an open-source, cross-platform test automation tool for native,
hybrid, and mobile web and desktop apps. We support simulators (iOS), emulators
Appium is an open source, cross-platform test automation tool for native,
hybrid and mobile web and desktop apps. We support simulators (iOS), emulators
(Android), and real devices (iOS, Android, Windows, Mac).
Want to skip straight to the action? Check out our [getting
@@ -34,7 +36,7 @@ specific information about how that driver works and how to set it up:
### Why Appium?
1. You don't have to recompile your app or modify it in any way, due
to the use of standard automation APIs on all platforms.
to use of standard automation APIs on all platforms.
2. You can write tests with your favorite dev tools using any
[WebDriver](https://w3c.github.io/webdriver/webdriver-spec.html)-compatible
language such as Java, Objective-C, JavaScript (Node), PHP, Python, Ruby,
@@ -42,22 +44,22 @@ specific information about how that driver works and how to set it up:
client libraries](/docs/en/about-appium/appium-clients.md).
3. You can use any testing framework.
4. Appium has built-in mobile web and hybrid app support. Within the same
script, you can switch seamlessly between native app automation and webview
script you can switch seamlessly between native app automation and webview
automation, all using the WebDriver model that's already the standard for
web automation.
Investing in the
[WebDriver](https://w3c.github.io/webdriver/webdriver-spec.html) protocol means
you are betting on a single, free, and open protocol for testing that has become
you are betting on a single, free and open protocol for testing that has become
a web standard. Don't lock yourself into a proprietary stack.
For example, if you use Apple's XCUITest library without Appium you can only
write tests using Obj-C/Swift, and you can only run tests through Xcode.
Similarly, with Google's UiAutomator or Espresso, you can only write tests in
Similarly, with Google's UiAutomator or Espresso you can only write tests in
Java/Kotlin. Appium opens up the possibility of true cross-platform native app
automation, for mobile and beyond. Finally!
If you're new to Appium or want a more comprehensive description of what this is all
If you're new to Appium, or want a more comprehensive description of what this is all
about, please read our [Introduction to Appium
Concepts](/docs/en/about-appium/intro.md).
@@ -73,7 +75,7 @@ Node.js 10+.
Check out our [Getting Started](/docs/en/about-appium/getting-started.md) guide
to get going with Appium.
There is also a sample code that contains [many examples of tests in a variety
There is also sample code that contains [many examples of tests in a variety
of different languages](https://github.com/appium/appium/tree/master/sample-code)!
### Documentation
@@ -82,16 +84,10 @@ For prettily-rendered docs, please visit [appium.io](http://appium.io). You can
always find the full list of Appium doc pages at [Appium's GitHub
Repo](https://github.com/appium/appium/tree/master/docs/en/) as well.
[update-appium-io.yml](https://github.com/appium/appium/blob/master/ci-jobs/update-appium-io.yml) creates a PR
by [CI job](https://dev.azure.com/AppiumCI/Appium%20CI/_build?definitionId=37).
in the appium.io repository with the documentation update.
Once the PR has been merged, the latest documentation will be in [appium.io](http://appium.io)
### Contributing
Please take a look at our [contribution documentation](CONTRIBUTING.md)
for instructions on how to build, test, and run Appium from the source.
for instructions on how to build, test and run Appium from source.
### Roadmap
-32
View File
@@ -1,32 +0,0 @@
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "12"
},
"shippedProposals": true
}
]
],
"plugins": ["source-map-support", "@babel/plugin-transform-runtime"],
"comments": false,
"sourceMaps": "both",
"env": {
"coverage": {
"plugins": [
[
"istanbul",
{
"exclude": ["test", "build"]
}
]
]
},
"test": {
"retainLines": true,
"comments": true
}
}
}
+71
View File
@@ -0,0 +1,71 @@
#!/usr/bin/env node
/* eslint no-console:0 */
/*
* Small tool, launching and monitoring ios-web-kit-proxy, and relauching
* on predefined errors.
*
* Usage:
* ./bin/ios-webkit-debug-proxy-launcher.js [args]
* args: ios-webkit-debug-proxy args (they will be passed over)
*
* Example:
* ./bin/ios-webkit-debug-proxy-launcher.js -c <UDID>:27753 -d
*
* Note:
* For iOS8.1 try this first:
* brew install --HEAD ideviceinstaller
*/
'use strict';
const spawn = require('child_process').spawn;
const _ = require('lodash');
const args = process.argv.slice(2);
const RESTART_ON_MESSAGES = [
'Invalid message _rpc_applicationUpdated',
'Invalid message _rpc_applicationSentListing'];
const PROXY_CMD = 'ios_webkit_debug_proxy';
let proxy;
const handleKillProcess = function (exitCode) {
console.log('\nKilling proxy process!');
proxy.kill('SIGTERM');
process.exit((exitCode || 0));
};
const startProxy = function () {
console.log(`RUNNING: ${PROXY_CMD} ${args.join(' ')}`);
proxy = spawn(PROXY_CMD, args);
proxy.stdout.on('data', function onStdout (data) {
console.log(`stdout: ${data}`);
});
proxy.stderr.on('data', function onStderr (data) {
console.log(`stderr: ${data}`);
const restartMessage = _(RESTART_ON_MESSAGES).find(function findMessage (message) {
return ('' + data).indexOf(message) >= 0;
});
if (restartMessage) {
console.log(`Detected error message: ${restartMessage}`);
console.log('Killing proxy!');
proxy.kill('SIGTERM');
process.nextTick(startProxy);
}
});
proxy.on('close', function onClose (code) {
console.log(`Child process exited with code ${code}`);
});
};
process.on('SIGINT', handleKillProcess);
process.on('SIGTERM', handleKillProcess);
startProxy();
+2 -4
View File
@@ -1,13 +1,11 @@
#!/usr/bin/env node
const path = require('path');
const childProcess = require('child_process');
const _ = require('lodash');
const res = JSON.parse(childProcess.execSync('npm pack --dry-run --json --ignore-scripts', {cwd: path.join(__dirname, '..'), encoding: 'utf8'}))[0];
const res = JSON.parse(childProcess.execSync('npm pack --dry-run --json --ignore-scripts', {encoding: 'utf8'}))[0];
// List of files we are testing to make sure they are included in package
const testFiles = [
'npm-shrinkwrap.json', // Check that npm-shrinkwrap.json is being packed
'LICENSE', // Check that license is included
'build/lib/appium.js', // Sanity check that build files are being included by testing just one file
];
+25
View File
@@ -0,0 +1,25 @@
const _ = require('lodash');
const { asyncify } = require('asyncbox');
const { fs, logger } = require('appium-support');
const path = require('path');
const log = new logger.getLogger('ShrinkwrapValidator');
async function main () {
const shrinkwrapPath = path.resolve('npm-shrinkwrap.json');
if (!(await fs.exists(shrinkwrapPath))) {
log.info('No shrinkwrap found. Skipping shrinkwrap check');
return;
}
const shrinkwrap = JSON.parse(await fs.readFile(shrinkwrapPath));
const backupShrinkwrap = JSON.parse(await fs.readFile(path.resolve('npm-shrinkwrap-backup.json')));
log.info('Checking that pruned shrinkwrap is a subset of primary shrinkwrap');
if (!_.isMatch(backupShrinkwrap, shrinkwrap)) {
log.errorAndThrow('Pruned shrinkwrap (shrinkwrap with dev dependencies removed) is not a subset of the original npm-shrinkwrap.json');
}
log.info('Shrinkwrap check passed');
}
if (require.main === module) {
asyncify(main);
}
+29
View File
@@ -0,0 +1,29 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: '12.x'
- script: npm install
displayName: NPM install
- script: |
git remote add triager https://triager:$GITHUB_TOKEN@github.com/appium/appium
git checkout -b $MINOR_BRANCH_NAME
git status
node ./ci-jobs/scripts/set-package-json-version
rm -rf package-lock.json
npm shrinkwrap
git add .
git commit -n -m "Set version to $(MINOR_BRANCH_NAME).0-rc.0"
git push -u triager $MINOR_BRANCH_NAME
displayName: Create branch
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
MINOR_BRANCH_NAME: $(MINOR_BRANCH_NAME)
- script: |
git tag $MINOR_BRANCH_NAME.0-rc.0
git push --tags -u triager
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc
npm publish --tag $(node ./ci-jobs/scripts/parse-tag)
env:
NPM_TOKEN: $(NPM_TOKEN)
displayName: Tag and Publish
+12 -1
View File
@@ -12,8 +12,15 @@ jobs:
- task: NodeTool@0
inputs:
versionSpec: '12.x'
- script: npm install
- script: npm ci || npm install # "npm ci" if shrinkwrap is present
displayName: Install NPM Dependencies
- script: |
pushd node_modules/appium-webdriveragent
carthage bootstrap --no-use-binaries
cp Cartfile.resolved Carthage
mkdir -p ./Resources/WebDriverAgent.bundle
popd
displayName: Fully build XCUITestDriver
- script: npm run build
displayName: npm run build
- script: npm prune --production
@@ -38,3 +45,7 @@ jobs:
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
displayName: Upload to appium/appium-build-store Github Releases
- script: npx gulp sauce-storage-upload
displayName: Upload to Sauce Storage as sauce-storage:appium.zip
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
+4 -6
View File
@@ -2,7 +2,7 @@
jobs:
- job: update_appium_io
pool:
vmImage: 'Ubuntu-18.04'
vmImage: 'macOS 10.14'
variables:
CC: gcc
CXX: g++
@@ -11,9 +11,8 @@ jobs:
inputs:
versionSpec: '10.x'
- script: |
brew install hub
pip install mkdocs==0.16.3
git config --global user.email "maintainers@appium.io"
git config --global user.name "Appium Triager"
git clone https://triager:$GITHUB_TOKEN@github.com/appium/appium.io.git --branch=gh-pages
pushd appium.io
git remote add triager https://triager:$GITHUB_TOKEN@github.com/appium/appium.io
@@ -21,10 +20,9 @@ jobs:
bundle install
npm install
npm run build:docs
git add docs
git commit -a -n -m "docs: Update documentation for latest version"
git commit -a -n -m 'Updated docs for latest Appium version'
git push triager docs-$BUILD_SOURCEVERSION
hub pull-request -b "appium:gh-pages" -h "appium:docs-$BUILD_SOURCEVERSION" -m "docs: Update documentation for latest version"
hub pull-request -b "appium:gh-pages" -h "appium:docs-$BUILD_SOURCEVERSION" -m "Update documentation for latest version"
popd
displayName: Make branch with Updated Docs and make PR
env:
@@ -32,17 +32,21 @@ example_usage:
context = current_context
ruby_core:
context = @driver.current_context
php:
|
$context = $driver->context();
csharp:
|
string Context = driver.Context;
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/AppiumDriver.html#getContext--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.context.Context.current_context"
python: "https://github.com/appium/python-client/blob/master/README.md#switching-between-native-and-webview"
javascript_wdio: "https://webdriver.io/docs/api/mjsonwp.html#getcontext"
javascript_wd: "https://github.com/admc/wd/blob/master/doc/api.md"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_context-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_context-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -62,6 +66,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -8,9 +8,10 @@ description:
For information on the format of the context names, see the [get context
documentation](/docs/en/commands/context/get-context.md).
[mobile command](/docs/en/commands/mobile-command.md)
`mobile: getContexts` is available on iOS (XCUITest) and Android
(UIAutomator2 and Espresso) to get more detailed contexts.
On iOS, using the XCUITest driver, one can use the `mobile: getContexts`
[mobile command](/docs/en/commands/mobile-command.md) as an alternative to
the standard method in order to get the title and url associated with each
context as additional metadata.
For information on contexts, see Appium's [hybrid automation docs](/docs/en/writing-running-appium/web/hybrid.md).
@@ -33,6 +34,9 @@ example_usage:
ruby_core:
|
context = @driver.available_contexts
php:
|
$contexts = $driver->contexts();
csharp:
|
List<string> AllContexts = new List<string>();
@@ -43,11 +47,12 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/AppiumDriver.html#getContextHandles--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.context.Context.contexts"
python: "https://github.com/appium/python-client/blob/master/README.md#switching-between-native-and-webview"
javascript_wdio: "https://webdriver.io/docs/api/mjsonwp.html#getcontexts"
javascript_wd: "https://github.com/admc/wd/blob/master/doc/api.md"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#available_contexts-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#available_contexts-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -67,6 +72,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -50,6 +50,12 @@ example_usage:
@driver.set_context(webview)
# ...
@driver.set_context('NATIVE_APP')
php:
|
$contexts = $driver->contexts();
$driver->context($contexts[1]);
// ...
$driver->context('NATIVE_APP');
csharp:
|
// Switch to specific webview
@@ -64,11 +70,12 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/AppiumDriver.html#context-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.context.Context.context"
python: "https://github.com/appium/python-client/blob/master/README.md#switching-between-native-and-webview"
javascript_wdio: "https://webdriver.io/docs/api/mjsonwp.html#switchcontext"
javascript_wd: "https://github.com/admc/wd/blob/master/doc/api.md"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#set_context-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#set_context-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -88,6 +95,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -21,18 +21,22 @@ example_usage:
ruby_core:
|
@driver.current_activity
php:
|
$activity = $driver->currentActivity();
csharp:
|
string activity = driver.CurrentActivity;
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/StartsActivity.html#currentActivity--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.activities.Activities.current_activity"
python: "https://github.com/appium/python-client/blob/master/README.md#retrieving-the-current-running-package-and-activity"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getcurrentactivity"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2519"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_activity-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_activity-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Android/AndroidDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -21,18 +21,22 @@ example_usage:
ruby_core:
|
@driver.current_package
php:
|
// TODO PHP sample
csharp:
|
string package = driver.CurrentPackage;
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/StartsActivity.html#getCurrentPackage--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.common.Common.current_package"
python: "https://github.com/appium/python-client/blob/master/README.md#retrieving-the-current-running-package-and-activity"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2526"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getcurrentpackage"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_package-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_package-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Android/AndroidDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: false
@@ -24,18 +24,23 @@ example_usage:
ruby_core:
|
@driver.start_activity app_package: "com.example", app_activity: "ActivityName"
php:
|
$driver->startActivity(array('appPackage' => 'com.example',
'appActivity' => 'ActivityName'));
csharp:
|
driver.StartActivity("com.example", "ActivityName");
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidMobileCommandHelper.html#startActivityCommand-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.activities.Activities.start_activity"
python: "https://github.com/appium/python-client/blob/master/README.md#start-an-arbitrary-activity"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#startactivity"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2948"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#start_activity-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#start_activity-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Android/AndroidDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -54,6 +59,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -30,6 +30,9 @@ example_usage:
|
@driver.activate_app('com.apple.Preferences')
@driver.activate_app('io.appium.android.apis')
php:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
csharp:
|
driver.activateApp('com.apple.Preferences');
@@ -37,11 +40,12 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#activateApp-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.activate_app"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/extensions/applications.py"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#activateapp"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js" # TODO wd documentation link
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#activate_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#activate_app-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -61,6 +65,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -30,17 +30,21 @@ example_usage:
|
@driver.app_state('com.apple.Preferences')
@driver.query_app_state('io.appium.android.apis') # `query_` prefix is also available
php:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
csharp:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#queryAppState-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.query_app_state"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/extensions/applications.py"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#queryappstate"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js" # TODO wd documentation link
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Driver#app_state-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Driver#app_state-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -60,6 +64,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -68,7 +73,7 @@ client_support:
# Information about the HTTP endpoints
endpoint:
url: /session/:session_id/appium/device/app_state
method: POST
method: GET
url_parameters:
- name: session_id
description: ID of the session to route the command to
@@ -9,7 +9,7 @@ description:
There are 3 types of parameters which may be passed to this method:
1. An object that looks like `{"seconds": secs}`, where `secs` is an
1. An object that looks like `{"timeout": secs}`, where `secs` is an
integer designating how long, in seconds, to background the app for. -1
means to deactivate the app entirely.
@@ -42,17 +42,21 @@ example_usage:
ruby_core:
|
@driver.background_app(10)
php:
|
$driver->backgroundApp(10);
csharp:
|
driver.BackgroundApp(10)
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#runAppInBackground-java.time.Duration-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.background_app"
python: "https://github.com/appium/python-client/blob/master/README.md#backgrounding-an-application"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#background"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2841"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#background_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#background_app-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -72,6 +76,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -20,18 +20,22 @@ example_usage:
ruby_core:
|
@driver.close_app
php:
|
$driver->closeApp();
csharp:
|
driver.CloseApp();
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#closeApp--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.close_app"
python: "https://github.com/appium/python-client/blob/master/README.md#closing-and-launching-an-application"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#closeapp"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2798"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#close_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#close_app-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -50,6 +54,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -20,18 +20,22 @@ example_usage:
ruby_core:
|
@driver.end_coverage("Intent", "/path")
php:
|
$driver->endTestCoverage('Intent', '/path');
csharp:
|
driver.EndTestCoverage("Intent", "/path");
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidDriver.html#endTestCoverage-java.lang.String-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.common.Common.end_test_coverage"
python: "https://github.com/appium/python-client/blob/master/README.md#end-test-coverage"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2858"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#endcoverage"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#end_coverage-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#end_coverage-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Android/AndroidDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -50,6 +54,7 @@ client_support:
java: true
python: true
ruby: false
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -20,18 +20,22 @@ example_usage:
ruby_core:
|
@driver.app_strings("en")
php:
|
$strings = $driver->appStrings();
csharp:
|
Dictionary<string, object> appStrings = driver.GetAppStringDictionary("end", "/path/to/file");
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/HasAppStrings.html#getAppStringMap--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.app_strings"
python: "https://github.com/appium/python-client/blob/master/README.md#retrieving-application-strings"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getstrings"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2916"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#app_strings-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#app_strings-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -50,6 +54,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -25,18 +25,22 @@ example_usage:
ruby_core:
|
@driver.install_app('/Users/johndoe/path/to/app.apk')
php:
|
$driver->installApp('/Users/johndoe/path/to/app.apk');
csharp:
|
driver.InstallApp("/Users/johndoe/path/to/app.apk")
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#installApp-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.install_app"
python: "https://github.com/appium/python-client/blob/master/README.md#installing-an-application"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#installapp"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2540"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#install_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#install_app-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -55,6 +59,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -25,18 +25,22 @@ example_usage:
ruby_core:
|
@driver.app_installed?('com.example.AppName')
php:
|
$driver->isAppInstalled('com.example.AppName')
csharp:
|
driver.IsAppInstalled("com.example.AppName");
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#isAppInstalled-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.is_app_installed"
python: "https://github.com/appium/python-client/blob/master/README.md#checking-if-an-application-is-installed"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#isappinstalled"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2586"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#app_installed%3F-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#app_installed%3F-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -55,6 +59,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -28,18 +28,22 @@ example_usage:
ruby_core:
|
@driver.launch_app
php:
|
$driver->launchApp();
csharp:
|
driver.LaunchApp();
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#launchApp--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.launch_app"
python: "https://github.com/appium/python-client/blob/master/README.md#closing-and-launching-an-application"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#launchapp"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2798"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#launch_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#launch_app-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -58,6 +62,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -26,18 +26,22 @@ example_usage:
ruby_core:
|
@driver.remove_app('com.example.AppName')
php:
|
$driver->removeApp('com.example.AppName');
csharp:
|
driver.RemoveApp("com.example.AppName");
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#removeApp-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.remove_app"
python: "https://github.com/appium/python-client/blob/master/README.md#removing-an-application"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#removeapp"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2563"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#remove_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#remove_app-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -56,6 +60,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -20,18 +20,22 @@ example_usage:
ruby_core:
|
@driver.reset
php:
|
$driver->reset();
csharp:
|
driver.ResetApp();
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#resetApp--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.reset"
python: "https://github.com/appium/python-client/blob/master/README.md#resetting-an-application"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#reset"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2827"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#reset-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#reset-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -50,6 +54,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -30,17 +30,21 @@ example_usage:
|
@driver.terminate_app('com.apple.Preferences')
@driver.terminate_app('io.appium.android.apis')
php:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
csharp:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#terminateApp-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.applications.Applications.terminate_app"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/extensions/applications.py"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#terminateapp"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js" # TODO wd documentation link
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Driver#terminate_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Driver#terminate_app-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -60,6 +64,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -76,7 +81,7 @@ endpoint:
- name: bundleId or appId
type: string
description: BundleId for iOS. Package name for Android.
- name: options.timeout
- name: timeout
type: number
description: (Only Android) Timeout to retry terminate the app.
@@ -28,17 +28,21 @@ example_usage:
ruby_core:
|
@driver.finger_print 1
php:
|
// PHP Code here
csharp:
|
// CSharp Code here
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#click--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.hw_actions.HardwareActions.finger_print"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#fingerprint"
javascript_wd: "https://github.com/appium/appium-android-driver/blob/d16c7161d92ab6f6c9cec3f22218219ac3659716/lib/commands/actions.js#L260"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device#finger_print-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device#finger_print-instance_method"
php:
csharp:
# Driver support by platform
@@ -58,6 +62,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -5,16 +5,6 @@ description:
>
Get the content of the system clipboard
(For iOS 13+ real devices)
Apple security preferences require the WebDriverAgentRunner application to be in [foreground](https://github.com/appium/WebDriverAgent/issues/330) in order to be able to receive the system clipboard content. Otherwise an empty string is always returned. Consider using [Activate App](/docs/en/commands/device/app/activate-app.md) and [Background App](/docs/en/commands/device/app/background-app.md) to change the foreground application.
Activate App command cannot launch the WebDriverAgent properly on some environments. It depends on XCTest framework by Apple. Then, you should launch the WebDriverAgent using its Springboard's application icon. Follow the example below.
1. Open Springboard, `@driver.activate_app 'com.apple.springboard'`.
2. Find the WDA icon with `@driver.find_element :accessibility_id, 'WebDriverAgentRunner-Runner'` (It should be visible on the screen) and click it.
3. Call the get clipboard API.
4. Open the application under test with the [Activate App](/docs/en/commands/device/app/activate-app.md).
example_usage:
java:
|
@@ -36,13 +26,16 @@ example_usage:
ruby_core:
|
@driver.get_clipboard
php:
|
// PHP Code here
csharp:
|
// CSharp Code here
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#click--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.clipboard.Clipboard.get_clipboard"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getclipboard"
javascript_wd: "https://github.com/admc/wd/releases"
ruby:
@@ -51,6 +44,7 @@ client_docs:
ruby_core:
- android: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_clipboard-instance_method"
- ios: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#get_clipboard-instance_method"
php: "https://github.com/appium/php-client/releases/latest"
csharp: "https://github.com/appium/appium" # TODO
# Driver support by platform
@@ -70,6 +64,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -5,15 +5,6 @@ description:
>
Set the content of the system clipboard
(For iOS 15+ real devices)
Apple security preferences require the WebDriverAgentRunner application to be in [foreground](https://github.com/appium/appium/issues/16526) in order to set the system clipboard content. Consider using [Activate App](/docs/en/commands/device/app/activate-app.md) and [Background App](/docs/en/commands/device/app/background-app.md) to change the foreground application.
Activate App command cannot launch the WebDriverAgent properly on some environments. It depends on XCTest framework by Apple. Then, you should launch the WebDriverAgent using its Springboard's application icon. Follow the example below.
1. Open Springboard, `@driver.activate_app 'com.apple.springboard'`.
2. Find the WDA icon with `@driver.find_element :accessibility_id, 'WebDriverAgentRunner-Runner'` (It should be visible on the screen) and click it.
3. Call the get clipboard API.
4. Open the application under test with the [Activate App](/docs/en/commands/device/app/activate-app.md).
example_usage:
java:
|
@@ -36,13 +27,16 @@ example_usage:
ruby_core:
|
@driver.set_clipboard content: 'happy testing'
php:
|
// PHP Code here
csharp:
|
// CSharp Code here
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#click--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.clipboard.Clipboard.get_clipboard"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#setclipboard"
javascript_wd: "https://github.com/admc/wd/releases"
ruby:
@@ -51,6 +45,7 @@ client_docs:
ruby_core:
- ios: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#set_clipboard-instance_method"
- android: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#set_clipboard-instance_method"
php: "https://github.com/appium/php-client/releases/latest"
csharp: "https://github.com/appium/appium" # TODO
# Driver support by platform
@@ -70,6 +65,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -26,7 +26,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/" # TODO: Link
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.power.Power.set_power_ac"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#powerac"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_power_ac-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_power_ac-instance_method"
@@ -48,6 +48,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: false
javascript_wdio: false
@@ -26,7 +26,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/" # TODO: Link
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.power.Power.set_power_capacity"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#powercapacity"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_power_capacity-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_power_capacity-instance_method"
@@ -48,6 +48,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: false
javascript_wdio: false
@@ -21,18 +21,22 @@ example_usage:
ruby_core:
|
@driver.pull_file('/data/local/tmp/file.txt')
php:
|
$data = $driver->pullFile('data/local/tmp/file.txt');
csharp:
|
byte[] fileBase64 = driver.PullFile("/path/to/device/foo.bar");
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithFiles.html#pullFile-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.remote_fs.RemoteFS.pull_file"
python: "https://github.com/appium/python-client/blob/master/README.md#retrieve-a-file-from-the-device"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#pullfile"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2665"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#pull_file-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#pull_file-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -21,18 +21,22 @@ example_usage:
ruby_core:
|
@driver.pull_folder('/data/local/tmp/file.txt')
php:
|
$folderBase64 = $driver->pullFolder($path);
csharp:
|
byte[] folder = driver.PullFolder("/path/to/device");
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithFiles.html#pullFolder-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.remote_fs.RemoteFS.pull_folder"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#pullfolder"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2688"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#pull_folder-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#pull_folder-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -5,37 +5,39 @@ short_description: Place a file onto the device in a particular place
example_usage:
java:
|
driver.pushFile("/data/local/tmp/foo.bar", new File("/Users/johndoe/files/foo.bar"));
driver.pushFile("/path/to/device/foo.bar", new File("/Users/johndoe/files/foo.bar"));
python:
|
dest_path = '/data/local/tmp/test_push_file.txt'
data = bytes('This is the contents of the file to push to the device.', 'utf-8')
self.driver.push_file(dest_path, base64.b64encode(data).decode('utf-8'))
self.driver.push_file('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
javascript_wd:
|
await driver.pushFileToDevice('/data/local/tmp/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
await driver.pushFileToDevice('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
javascript_wdio:
|
let data = new Buffer("Hello World").toString('base64');
driver.pushFile('/data/local/tmp/file.txt', data);
ruby:
|
push_file('/data/local/tmp/foo.bar', File.read('path/to/file.png'))
push_file('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=')
ruby_core:
|
@driver.push_file('/data/local/tmp/foo.bar', File.read('path/to/file.png'))
@driver.push_file('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=')
php:
|
$driver->pushFile('/path/to/device/foo.bar', 'QXJlIHlvdXIgYmVlcnMgb2theT8=');
csharp:
|
driver.PushFile("/data/local/tmp/foo.bar", new FileInfo("/Users/johndoe/files/foo.bar"))
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/PushesFiles.html#pushFile-java.lang.String-java.io.File-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.remote_fs.RemoteFS.push_file"
python: "https://github.com/appium/python-client/blob/master/README.md#place-a-file-on-the-device"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#pushfile"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2640"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#push_file-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#push_file-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -54,6 +56,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -22,18 +22,22 @@ example_usage:
ruby_core:
|
@driver.device_locked?
php:
|
// TODO PHP sample
csharp:
|
bool isLocked = driver.IsLocked(); // Supported by IOSDriver & AndroidDriver
// TODO C# sample
client_docs:
java: "http://appium.github.io/java-client/io/appium/java_client/LocksDevice.html#isDeviceLocked--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.hw_actions.HardwareActions.is_locked"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#islocked"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2407"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#device_locked%3F-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#device_locked%3F-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Android/AndroidDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -52,6 +56,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -25,18 +25,22 @@ example_usage:
|
@driver.lock
@driver.lock(5) # lock 5 seconds
php:
|
$driver->lock(5);
csharp:
|
driver.Lock(); // Supported by IOSDriver & AndroidDriver
// TODO C# sample
client_docs:
java: "http://appium.github.io/java-client/io/appium/java_client/LocksDevice.html#lockDevice--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.hw_actions.HardwareActions.lock"
python: "https://github.com/appium/python-client/blob/master/README.md#lock-the-device"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#lock"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2363"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#lock-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#lock-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Android/AndroidDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -55,6 +59,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -12,15 +12,19 @@ example_usage:
javascript_wdio:
|
driver.rotateDevice(100, 100);
php:
|
// TODO PHP sample
csharp:
|
driver.Rotate(new Dictionary<string, int> { { "x", 114 }, { "y", 198 }, { "duration", 5 }, { "radius", 3 }, { "rotation", 220 }, { "touchCount", 2 } });
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/AppiumDriver.html#rotate-org.openqa.selenium.DeviceRotation-"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#rotatedevice"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2470"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -39,6 +43,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -22,18 +22,22 @@ example_usage:
ruby_core:
|
@driver.shake
php:
|
$driver->shake();
csharp:
|
driver.ShakeDevice();
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/ios/ShakesDevice.html#shake--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.hw_actions.HardwareActions.shake"
python: "https://github.com/appium/python-client/blob/master/README.md#shake-the-device"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#shake"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2342"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#shake-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#shake-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/iOS/IOSDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -52,6 +56,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -25,18 +25,22 @@ example_usage:
ruby_core:
|
@driver.unlock
php:
|
// TODO PHP sample
csharp:
|
driver.Unlock(); // Supported by IOSDriver & AndroidDriver
// TODO C# sample
client_docs:
java: "http://appium.github.io/java-client/io/appium/java_client/LocksDevice.html#unlockDevice--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.hw_actions.HardwareActions.unlock"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#unlock"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2386"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#unlock-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#unlock-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Android/AndroidDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -55,6 +59,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -21,18 +21,25 @@ example_usage:
ruby_core:
|
@driver.hide_keyboard
php:
|
$driver->hideKeyboard();
$driver->hideKeyboard(array(
'keyName' => 'Done'
));
csharp:
|
driver.HideKeyboard();
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/HidesKeyboard.html#hideKeyboard--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.keyboard.Keyboard.hide_keyboard"
python: "https://github.com/appium/python-client/blob/master/README.md#hiding-the-keyboard-in-ios"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#hidekeyboard"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2723"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#hide_keyboard-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#hide_keyboard-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -51,6 +58,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -24,7 +24,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/HasOnScreenKeyboard.html#isKeyboardShown--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.keyboard.Keyboard.is_keyboard_shown"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2638"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#iskeyboardshown"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#is_keyboard_shown-instance_method"
@@ -47,6 +47,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: false
@@ -23,18 +23,22 @@ example_usage:
ruby_core:
|
@driver.long_press_keycode(10)
php:
|
// TODO PHP sample
csharp:
|
driver.LongPressKeyCode(WindowsKeyCode.Back);
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/windows/PressesKeyCode.html#longPressKeyCode-int-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.keyboard.Keyboard.long_press_keycode"
python: "https://github.com/appium/python-client/blob/master/README.md#long_press"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#longpresskeycode"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2478"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#long_press_keycode-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#long_press_keycode-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Windows/WindowsDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -48,11 +52,12 @@ driver_support:
mac:
mac: false # TODO Confirm this that mouse movements
windows:
windows: true # TODO Confirm this
windows: false # TODO Confirm this
client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -23,18 +23,22 @@ example_usage:
ruby_core:
|
@driver.press_keycode(10)
php:
|
// TODO PHP sample
csharp:
|
driver.PressKeyCode(WindowsKeyCode.Windows);
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/windows/PressesKeyCode.html#pressKeyCode-int-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.keyboard.Keyboard.press_keycode"
python: "https://github.com/appium/python-client/blob/master/README.md#sending-a-key-event-to-an-android-device"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#presskeycode"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2457"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#press_keycode-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#press_keycode-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/Windows/WindowsDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -48,11 +52,12 @@ driver_support:
mac:
mac: false # TODO Confirm this that mouse movements
windows:
windows: true # TODO Confirm this
windows: false # TODO Confirm this
client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -21,17 +21,21 @@ example_usage:
ruby_core:
|
@driver.gsm_call(phone_number: '5551234567', action: :call)
php:
|
// TODO
csharp:
|
// TODO
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#makeGsmCall-java.lang.String-io.appium.java_client.android.GsmCallActions-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.gsm.Gsm.make_gsm_call"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3183"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#gsmcall"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_call-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_call-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -21,17 +21,21 @@ example_usage:
ruby_core:
|
@driver.gsm_signal :good
php:
|
// TODO
csharp:
|
// TODO
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#setGsmSignalStrength-io.appium.java_client.android.GsmSignalStrength-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.gsm.Gsm.set_gsm_signal"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3221"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#gsmsignal"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_signal-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_signal-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -21,17 +21,21 @@ example_usage:
ruby_core:
|
@driver.gsm_voice :home
php:
|
// TODO
csharp:
|
// TODO
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#setGsmVoice-io.appium.java_client.android.GsmVoiceState-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.gsm.Gsm.set_gsm_voice"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3241"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#gsmvoice"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_voice-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_voice-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -24,7 +24,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#setNetworkSpeed-io.appium.java_client.android.NetworkSpeed-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.network.Network.set_network_speed"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3411"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#togglenetworkspeed"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_network_speed-instance_method"
@@ -47,6 +47,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -21,17 +21,21 @@ example_usage:
ruby_core:
|
@driver.send_sms(phone_number: '555-123-4567', message: 'Hey lol')
php:
|
// TODO
csharp:
|
// TODO
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#sendSMS-java.lang.String-java.lang.String-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.sms.Sms.send_sms"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3183"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#sendsms"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#send_sms-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#send_sms-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -18,6 +18,9 @@ example_usage:
ruby_core:
|
@driver.toggle_flight_mode
php:
|
// TODO
csharp:
|
// TODO
@@ -28,6 +31,7 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2712"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#toggle_flight_mode-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#toggle_flight_mode-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -47,6 +51,7 @@ client_support:
java: true
python: false
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -24,6 +24,9 @@ example_usage:
ruby_core:
|
@driver.toggle_data
php:
|
// TODO
csharp:
|
// TODO
@@ -34,6 +37,7 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2771"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Device#toggle_data-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Device#toggle_data-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -53,6 +57,7 @@ client_support:
java: true
python: false
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -21,17 +21,21 @@ example_usage:
ruby_core:
|
@driver.toggle_location_services
php:
|
// TODO
csharp:
|
// TODO
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidDriver.html#toggleLocationServices--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.location.Location.toggle_location_services"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#togglelocationservices"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2758"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Device#toggle_location_services-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Device#toggle_location_services-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -29,17 +29,21 @@ example_usage:
ruby_core:
|
@driver.toggle_wifi
php:
|
// TODO
csharp:
|
// TODO
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsNetworkStateManagement.html#toggleWifi--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.network.Network.toggle_wifi"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#togglewifi"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2738"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Device#toggle_wifi-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Device#toggle_wifi-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -59,6 +63,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -22,17 +22,21 @@ example_usage:
ruby_core:
|
@driver.get_performance_data package_name: 'io.appium.android.apis', data_type: 'cpuinfo', data_read_timeout: 10
php:
|
// TODO PHP sample
csharp:
|
// Not supported
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/HasSupportedPerformanceDataType.html#getSupportedPerformanceDataTypes--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.performance.Performance.get_performance_data"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3412"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getperformancedata"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_performance_data-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_performance_data-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -52,6 +56,7 @@ client_support:
java: true
python: false
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -21,17 +21,21 @@ example_usage:
ruby_core:
|
@driver.get_performance_data_types
php:
|
// TODO PHP sample
csharp:
|
// Not supported
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/HasSupportedPerformanceDataType.html#getSupportedPerformanceDataTypes--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.performance.Performance.get_performance_data_types"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3398"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getperformancedatatypes"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_performance_data_types-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_performance_data_types-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -51,6 +55,7 @@ client_support:
java: true
python: false
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -26,6 +26,9 @@ example_usage:
python:
|
self.driver.start_recording_screen()
php:
|
// TODO PHP sample
csharp:
|
driver.StartRecordingScreen(
@@ -36,7 +39,7 @@ example_usage:
client_docs:
java: "https://static.javadoc.io/io.appium/java-client/6.1.0/io/appium/java_client/screenrecording/CanRecordScreen.html#startRecordingScreen-T-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.screen_record.ScreenRecord.start_recording_screen"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3412"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#startrecordingscreen"
ruby:
@@ -45,6 +48,7 @@ client_docs:
ruby_core:
- android: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#start_recording_screen-instance_method"
ios: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Xcuitest/Device#start_recording_screen-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -64,6 +68,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -110,7 +115,7 @@ endpoint:
- name: options.videoType
type: string
description: (iOS Only) The format of the screen capture to be recorded.
Available formats are the output of `ffmpeg -codecs` such as `libx264` and `mpeg4`. Defaults to `mjpeg`.
Available formats are the output of `ffmpeg -codecs` such as `libx264` and `mpeg4`. Defaults to `mpeg4`.
- name: options.videoQuality
type: string
description: (iOS Only) The video encoding quality (low, medium, high, photo - defaults to medium).
@@ -24,18 +24,22 @@ example_usage:
python:
|
self.driver.stop_recording_screen()
csharp:
php:
|
driver.StopRecordingScreen();
csharp:
|
// TODO C# sample
client_docs:
java: "https://static.javadoc.io/io.appium/java-client/6.1.0/io/appium/java_client/screenrecording/CanRecordScreen.html#stopRecordingScreen--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.screen_record.ScreenRecord.stop_recording_screen"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3398"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#stoprecordingscreen"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#stop_recording_screen-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#stop_recording_screen-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -54,6 +58,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
@@ -7,8 +7,6 @@ description:
To enable this feature, the `allowTouchIdEnroll` desired capability must be set to true. When `allowTouchIdEnroll` is set to true
the Simulator will be enrolled by default, and the 'Toggle Touch ID Enrollment' changes the enrollment state.
Another way to enable touch id is by using `mobile: enrollBiometric`. More info [here](https://github.com/appium/appium-xcuitest-driver#mobile-enrollbiometric).
This call will only work if the Appium process or its parent application (e.g., Terminal.app or Appium.app) has access to Mac OS accessibility in System Preferences > Security & Privacy > Privacy > Accessibility list
example_usage:
@@ -30,17 +28,21 @@ example_usage:
ruby_core:
|
@driver.toggle_touch_id_enrollment
php:
|
// TODO PHP sample
csharp:
|
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/ios/PerformsTouchID.html#performTouchID-boolean-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.hw_actions.HardwareActions.toggle_touch_id_enrollment"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#toggleenrolltouchid"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3150"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#toggle_touch_id_enrollment-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#toggle_touch_id_enrollment-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -60,6 +62,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -40,19 +40,22 @@ example_usage:
|
@driver.touch_id(false) # Simulates a failed touch
@driver.touch_id(true) # Simulates a passing touch
php:
|
// TODO PHP sample
csharp:
|
driver.PerformTouchID(false); // Simulates a failed touch
driver.PerformTouchID(true); // Simulates a passing touch
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/ios/PerformsTouchID.html#performTouchID-boolean-"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.hw_actions.HardwareActions.touch_id"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#touchid"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3133"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#touch_id-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#touch_id-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/iOS/IOSDriver.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -71,6 +74,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -8,7 +8,7 @@ example_usage:
driver.getDeviceDensity();
python:
|
self.driver.get_display_density()
self.driver.get_device_density()
javascript_wdio:
|
driver.getDisplayDensity();
@@ -21,7 +21,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidMobileCommandHelper.html#getDisplayDensityCommand--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.display.Display.get_display_density"
python: "https://github.com/appium/python-client"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_display_density-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_display_density-instance_method"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getdisplaydensity"
@@ -43,6 +43,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: false
javascript_wdio: true
@@ -21,17 +21,21 @@ example_usage:
ruby_core:
|
@driver.open_notifications();
php:
|
$driver->openNotifications();
csharp:
|
// TODO
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidDriver.html#openNotifications--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.common.Common.open_notifications"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#opennotifications"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3004"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#open_notifications-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#open_notifications-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -51,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -18,16 +18,20 @@ example_usage:
ruby_core:
|
@driver.get_system_bars
php:
|
// TODO
csharp:
|
// TODO
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/HasAndroidDeviceDetails.html#getSystemBars--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.android.html#webdriver.extensions.android.system_bars.SystemBars.get_system_bars"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getsystembars"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#get_system_bars-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#get_system_bars-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -47,6 +51,7 @@ client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: false
javascript_wdio: true
@@ -24,17 +24,21 @@ example_usage:
ruby_core:
|
@driver.device_time
php:
|
$time = $driver->getDeviceTime();
csharp:
|
string result = driver.DeviceTime;
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/HasDeviceTime.html#getDeviceTime--"
python: "https://appium.github.io/python-client-sphinx/webdriver.extensions.html#webdriver.extensions.device_time.DeviceTime.device_time"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getdevicetime"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3119"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#device_time-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#device_time-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -54,6 +58,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -22,11 +22,12 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, "SomeAccessibilityID").clear
php:
|
// TODO PHP sample
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
element.Clear();
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#clear--"
@@ -35,7 +36,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1780"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:clear"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:clear"
csharp: "https://github.com/SeleniumHQ/selenium/blob/master/dotnet/src/webdriver/Remote/RemoteWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -54,6 +56,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -29,6 +29,9 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, 'SomeId').click
php:
|
$driver->byAccessibilityId('SomeId')->click();
csharp:
|
MobileElement el = driver.FindElement(MobileByAccessibilityID("Some ID");
@@ -45,6 +48,7 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1672"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#click-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#click-instance_method"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
@@ -64,6 +68,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -28,6 +28,10 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, "SomeAccessibilityID").send_keys("Hello World!")
php:
|
$el = $this->byAccessibilityId('SomeAccessibilityID');
$el->setText('Hello world!');
csharp:
|
MobileElement el = driver.FindElement(MobileByAccessibilityID("Some ID");
@@ -44,6 +48,7 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1700"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#send_keys-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#send_keys-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -63,6 +68,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -23,11 +23,13 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, 'SomeAccessibilityID').attribute("content-desc")
php:
|
$el = $this->byAccessibilityId('SomeAccessibilityID');
$name = $el->attribute('name');
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
string tagName = element.GetAttribute("content-desc");
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getAttribute"
@@ -36,7 +38,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1350"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FElement:attribute"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FElement:attribute"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm if all the drivers support this
driver_support:
@@ -55,6 +58,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -29,10 +29,12 @@ example_usage:
ruby_core:
|
@driver.find_element(:id, 'SomeId').css_value
php:
|
// TODO PHP sample
csharp:
|
var element = driver.FindElementById("SomeId");
string cssProperty = element.GetCssValue("style");
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getCssValue--"
@@ -41,7 +43,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1447"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:css_value"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:css_value"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm if all the drivers support this
driver_support:
@@ -60,6 +63,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -23,10 +23,13 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, "SomeAccessibilityID").displayed?
php:
|
$el = $this->byAccessibilityId('SomeAccessibilityID');
$isDisplayed = $el->displayed();
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
bool isDisplayed = element.Displayed;
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#isDisplayed--"
@@ -35,7 +38,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1370"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FElement:displayed%3F"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium%2FWebDriver%2FElement:displayed%3F"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm support for these per platform
driver_support:
@@ -54,6 +58,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -22,10 +22,12 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, "SomeAccessibilityID").enabled?
php:
|
// TODO PHP sample
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
bool isEnabled = element.Enabled;
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#isEnabled---"
@@ -34,7 +36,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1386"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#enabled%3F-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#enabled%3F-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm support for these per platform
driver_support:
@@ -53,6 +56,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -37,6 +37,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -25,10 +25,13 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, 'SomeAccessibilityID').location
php:
|
$el = $this->byAccessibilityId('SomeAccessibilityID');
$location = $el->location();
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
Point location = element.Location;
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getLocation--"
@@ -37,7 +40,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2175"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:location"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:location"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm if all the drivers support this
driver_support:
@@ -56,6 +60,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -23,10 +23,12 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, 'SomeAccessibilityID').tag_name
php:
|
// TODO PHP sample
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
string tagName = element.TagName;
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getTagName--"
@@ -35,7 +37,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1336"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#tag_name-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#tag_name-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm if all the drivers support this
driver_support:
@@ -54,6 +57,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -18,6 +18,9 @@ example_usage:
ruby:
|
// TODO Ruby sample
php:
|
// TODO PHP sample
csharp:
|
// TODO C# sample
@@ -28,6 +31,7 @@ client_docs:
javascript_wdio: "https://webdriver.io/docs/api/mjsonwp.html#getpageindex"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1336"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#tag_name-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm if all the drivers support this
@@ -47,6 +51,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -27,17 +27,20 @@ example_usage:
|
element = @driver.find_element :accessibility_id, "SomeAccessibilityID"
element.rect
php:
|
// TODO PHP sample
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
Rectangle rect = element.Rect;
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getRect--"
javascript_wdio: "https://webdriver.io/docs/api/webdriver.html#getelementrect"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#rect-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#rect-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm if all the drivers support this
driver_support:
@@ -56,6 +59,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -27,6 +27,9 @@ example_usage:
|
element = @driver.find_element :accessibility_id, "SomeAccessibilityID"
@driver.replace_value element, 'some'
php:
|
// TODO PHP sample
csharp:
|
// TODO C# sample
@@ -38,6 +41,7 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1832" # TODO JAvaScript documentation link
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#replace_value-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#replace_value-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -57,6 +61,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -22,10 +22,12 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, "SomeAccessibilityID").selected?
php:
|
// TODO PHP sample
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
bool isSelected = element.Selected;
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#isSelected--"
@@ -34,7 +36,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1402"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#selected%3F-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#selected%3F-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm support for these per platform
driver_support:
@@ -53,6 +56,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -25,10 +25,13 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, 'SomeAccessibilityID').size
php:
|
$el = $this->byAccessibilityId('SomeAccessibilityID');
$size = $el->size();
csharp:
|
var element = driver.FindElementByAccessibilityId("SomeAccessibilityID");
Size elementSize = element.Size;
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getSize--"
@@ -37,7 +40,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2203"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:size"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element:size"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm if all the drivers support this
driver_support:
@@ -56,6 +60,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -29,10 +29,13 @@ example_usage:
|
element = @driver.find_element :accessibility_id, "SomeAccessibilityID"
element.text
php:
|
$el = $this->byAccessibilityId('SomeAccessibilityID');
$text = $el->text();
csharp:
|
var element = driver.FindElementByClassName("SomeClassName");
string elText = element.Text;
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#getText--"
@@ -41,7 +44,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1832"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#text-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Element#text-instance_method"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -60,6 +64,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -26,6 +26,9 @@ example_usage:
ruby_core:
|
@driver.find_element(:accessibility_id, 'SomeAccessibilityID')
php:
|
$el = $this->byAccessibilityId('SomeAccessibilityID');
csharp:
|
AndroidElement elementOne = driver.FindElementByAccessibilityID("Some ID");
@@ -38,6 +41,7 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L745"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/SearchContext:find_element"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/SearchContext:find_element"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
@@ -57,6 +61,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -47,10 +47,12 @@ example_usage:
ruby_core:
|
@driver.find_elements(:accessibility_id, "~SomeAccessibilityID")
php:
|
$els = $this->elements($this->using('accessibility id')->value('SomeAccessibilityID'));
csharp:
|
IEnumerable<AppiumWebElement> elementsOne = driver.FindElementsByAccessibilityId("SomeAccessibilityID");
IEnumerable<AppiumWebElement> elementsTwo = driver.FindElementsByClassName("SomeClassName");
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#findElements-org.openqa.selenium.By-"
@@ -59,7 +61,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L798"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/SearchContext:find_elements"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/SearchContext:find_elements"
csharp: "https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -78,6 +81,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -21,10 +21,12 @@ example_usage:
ruby_core:
|
@driver.switch_to.active_element
php:
|
// TODO PHP example
csharp:
|
IWebElement currentElement = driver.SwitchTo().ActiveElement();
// TODO C# example
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html#activeElement--"
@@ -33,7 +35,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1934"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/WebDriver/TargetLocator#active_element-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/WebDriver/TargetLocator#active_element-instance_method"
csharp: "https://github.com/SeleniumHQ/selenium/blob/master/dotnet/src/webdriver/Remote/RemoteTargetLocator.cs"
php: "https://github.com/appium/php-client/" # TODO
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO
# Driver support by platform
driver_support:
@@ -52,6 +55,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -60,7 +64,7 @@ client_support:
# Information about the HTTP endpoints
endpoint:
url: /session/:session_id/element/active
method: "'GET'(W3C), 'POST'(JSONWP)"
method: 'POST'
response:
- name: ELEMENT
type: object
@@ -33,11 +33,12 @@ example_usage:
element1 = @driver.find_element :class_name, "someClass"
element2 = @driver.find_element :class_name, "someOtherClass"
element1 == element2
php:
|
// TODO PHP sample
csharp:
|
var elementOne = driver.FindElementByClassName("SomeClassName");
var elementTwo = driver.FindElementByClassName("SomeOtherClassName");
bool isEqual = elementOne.Equals(elementTwo);
// TODO C# sample
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/MobileElement.html"
@@ -46,7 +47,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1463"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/WebDriver/Element#==-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/WebDriver/Element#==-instance_method"
csharp: "https://github.com/SeleniumHQ/selenium/blob/master/dotnet/src/webdriver/Remote/RemoteWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# TODO: Confirm support for these per platform
driver_support:
@@ -65,6 +67,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -30,10 +30,12 @@ example_usage:
|
element = @driver.find_element :class_name, "someClass"
element.submit element
php:
|
// TODO PHP sample
csharp:
|
var element = driver.FindElementByClassName("SomeClassName");
element.Submit();
// TODO C# sample
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#submit--"
@@ -42,7 +44,8 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1741"
ruby: "https://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/WebDriver/Element#submit-instance_method"
ruby_core: "https://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/WebDriver/Element#submit-instance_method"
csharp: "https://github.com/SeleniumHQ/selenium/blob/master/dotnet/src/webdriver/Remote/RemoteWebElement.cs"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
@@ -61,6 +64,7 @@ client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
@@ -26,6 +26,9 @@ example_usage:
ruby_core:
|
# Ruby Code in ruby_lib_core here
php:
|
// PHP Code here
csharp:
|
driver.FindElementById("elementId").Click();
@@ -33,11 +36,14 @@ example_usage:
client_docs:
java:
- url: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#click--"
python: "https://appium.github.io/python-client-sphinx"
python:
- android: "https://github.com/appium/python-client/android-command"
ios: "https://github.com/appium/python-client/ios-command"
javascript_wdio: "http://webdriver.io/index.html"
javascript_wd: "https://github.com/admc/wd/releases"
ruby: "https://github.com/appium/ruby_lib/releases/latest"
ruby_core: "https://github.com/appium/ruby_lib/releases/latest"
php: "https://github.com/appium/php-client/releases/latest"
csharp: "https://github.com/appium/appium" # TODO
# Driver support by platform
@@ -66,6 +72,7 @@ client_support:
python:
min: 2
ruby: true # If true, means it supports all
php: false # If false(y), means it is not supported
# Information about the HTTP endpoints

Some files were not shown because too many files have changed in this diff Show More