Appium bridge to AppiumForMac

Usage no npm install needed!

<script type="module">
  import appiumMacDriver from '';


Appium Mac Driver

Greenkeeper badge

Appium Mac Driver is a test automation tool for Mac apps

Please consider switching to appium-mac2-driver for over macOS 10.15

The Appium team will not contribute to this driver


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);

Watch code for changes, re-transpile and run unit tests:

npm run test


You can run unit and e2e tests:

// unit tests:
npm run test

// e2e tests
npm run e2e-test

Opt-In Features (With Security Risk)

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 same machine. Read appium-mac-driver#38 for more details on the implementation

Desired Capabilities

Should be same for Appium

Differences are noted here:

Handling Appium for mac

Capability Description Values
a4mHost Specify the host name to the app for mac application. Defaults to 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/ e.g, /Applications/
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 same machine. Defaults to true false, true
cookies Set propertires for appium-for-mac. Please read this section for more details. [{'name': 'implicit_timeout', 'value': 20.5}]

Customize the port of AppiumForMac / Run tests in parallel

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 same 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 scenarios run on the same machine.