Appium Mac Driver is a test automation tool for Mac apps
npm install appium-mac-driver
Import Mac Driver, set desired capabilities and create a session:
import { MacDriver } from `appium-mac-driver`
let defaultCaps = {
platformName: 'Mac'
};
let driver = new MacDriver();
await driver.createSession(defaultCaps);
npm run test
You can run unit and e2e tests:
// unit tests:
npm run test
// e2e tests
npm run e2e-test
These can be enabled when running this driver through Appium, via the --allow-insecure
or --relaxed-security
flags.
Feature Name | Description |
---|---|
system_shell |
Allows to execute shell scripts on the machine. Read appium-mac-driver#38 for more details on the implementation |
Should be same for Appium
Differences are noted here:
Capability | Description | Values |
---|---|---|
AppiumForMac |
Specify the host name to the app for mac application. Defaults to 127.0.0.1 |
e.g., localhost |
a4mPort |
Specify the port to the app for mac application. Defaults to 4622 |
e.g, 4622 , 8080 |
a4mAppPath |
Specify the path to the app for mac application. It helps to launch AppiumForMac application in a custom path. Defaults to /Applications/AppiumForMac.app |
e.g, /Applications/CustomAppiumForMac.app |
killAllA4MAppBeforeStart |
Kill all running processes named AppiumForMac not to remain the process in next Appium session run. Please disable this value when you run multiple AppiumForMac on the machine. Defaults to true |
false , true |
implicitTimeout |
||
loopDelay |
||
commandDelay |
||
mouseMoveSpeed |
||
diagnosticsDirectoryLocation |
||
screenShotOnError |
You can launch multiple AppiumForMac
on a same machine to run tests in parallel.
Please consider to set a4mPort
, a4mAppPath
and killAllA4MAppBeforeStart
as their capabilities to handle multiple Appium sessions on the machine.
You must modify the port number in appium-for-mac and build the app to coordinate the port number on AppiumForMac
. Appium-mac-driver tries to establish a session to the host/port referencing a4mPort
and a4mAppPath
.
Do not forget to handle your test scenarios properly not to conflict each other since the scenarios runs on the machine.