PHPackages                             appium/php-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. appium/php-client

ActiveAppium-php[Testing &amp; Quality](/categories/testing)

appium/php-client
=================

PHP client for Selenium 3.0/Appium 1.0

v0.3.0(8y ago)71674.0k↓39%38[11 issues](https://github.com/appium/php-client/issues)[1 PRs](https://github.com/appium/php-client/pulls)4Apache-2.0PHPPHP &gt;=5.3.0

Since Sep 22Pushed 7y ago13 watchersCompare

[ Source](https://github.com/appium/php-client)[ Packagist](https://packagist.org/packages/appium/php-client)[ Docs](http://github.com/appium/appium-php)[ RSS](/packages/appium-php-client/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (6)Used By (4)

Appium PHP Client
=================

[](#appium-php-client)

An extension library to add Selenium 3 features to Appium.

The library is installable using the [Composer](https://getcomposer.org/) dependency manager. Just add `"appium/appium-php": "dev-master"` (or any other branch/tag you might like) to your `composer.json` file's `require`s, and the [repository on GitHub](https://github.com/appium/php-client) to the `repositories`:

```
{
    "name": "username/my-php-project",
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/appium/php-client"
        }
    ],
    "require": {
        "appium/php-client": "dev-master"
    }
}
```

Have an instance of Appium running in the background at port 4723. Then install the dependencies and run your tests:

```
composer install
vendor/phpunit/phpunit/phpunit
```

For more details about your tests add the `--verbose` flag to phpunit

Usage and changes
-----------------

[](#usage-and-changes)

There are a number of methods added to [Selenium 3/Appium 1](https://github.com/appium/appium/blob/master/docs/en/migrating-to-1-0.md). The central change is in the test case that serves as the base of your tests, and the elements with which you interact. Both are subclasses of the [PHPUnit Selenium](https://github.com/sebastianbergmann/phpunit-selenium/) classes. Your tests should be subclasses of [PHPUnit\_Extensions\_AppiumTestCase](https://github.com/appium/php-client/blob/master/PHPUnit/Extensions/AppiumTestCase.php), and all elements that get returned will be of the class [PHPUnit\_Extensions\_AppiumTestCase\_Element](https://github.com/appium/php-client/blob/master/PHPUnit/Extensions/AppiumTestCase/Element.php).

```
require_once('PHPUnit/Extensions/AppiumTestCase.php');
require_once('PHPUnit/Extensions/AppiumTestCase/Element.php');

class MySuperTests extends PHPUnit_Extensions_AppiumTestCase
{
    public static $browsers = array(
        array(
            'local' => true,
            'port' => 4723,
            'browserName' => '',
            'desiredCapabilities' => array(
                'app' => APP_PATH
            )
        )
    );

    public function testStuff()
    {
        $element = $this->byAccessibilityId('Element on screen');

        $this->assertInstanceOf('PHPUnit_Extensions_AppiumTestCase_Element', $element);
    }
}
```

Methods added
-------------

[](#methods-added)

### Methods in `PHPUnit_Extensions_AppiumTestCase`

[](#methods-in-phpunit_extensions_appiumtestcase)

- `byIOSUIAutomation`
- `byAndroidUIAutomator`
- `byAccessibilityId`
- `keyEvent`
- `pullFile`
- `pushFile`
- `backgroundApp`
- `isAppInstalled`
- `installApp`
- `removeApp`
- `launchApp`
- `closeApp`
- `endTestCoverage`
- `lock`
- `shake`
- `getDeviceTime`
- `hideKeyboard`
- `initiateTouchAction`
- `initiateMultiAction`
- `scroll`
- `dragAndDrop`
- `swipe`
- `tap`
- `pinch`
- `zoom`
- `startActivity`
- `getSettings`
- `setSettings`

### Methods in `PHPUnit_Extensions_AppiumTestCase_Element`

[](#methods-in-phpunit_extensions_appiumtestcase_element)

- `byIOSUIAutomation`
- `byAndroidUIAutomator`
- `byAccessibilityId`
- `setImmediateValue`

### Methods for Touch Actions and Multi Gesture Touch Actions

[](#methods-for-touch-actions-and-multi-gesture-touch-actions)

Appium 1.0 allows for much more complex ways of interacting with your app through Touch Actions and Multi Gesture Touch Actions. The `PHPUnit_Extensions_AppiumTestCase_TouchAction` class allows for the following events:

- `tap`
- `press`
- `longPress`
- `moveTo`
- `wait`
- `release`

All of these except `tap` and `release` can be chained together to create arbitrarily complex actions. Instances of the `PHPUnit_Extensions_AppiumTestCase_TouchAction` class are obtained through the Test Class's `initiateTouchAction` method, and dispatched through the `perform` method.

The Multi Gesture Touch Action API allows for adding an arbitrary number of Touch Actions to be run in parallel on the device. Individual actions created as above are added to the multi action object (an instance of `PHPUnit_Extensions_AppiumTestCase_MultiAction` obtained from the Test Class's `initiateMultiAction` method) through the `add` method, and the whole thing is dispatched using `perform`.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity50

Moderate usage in the ecosystem

Community29

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~341 days

Total

4

Last Release

3231d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e1afd360fb0c1c5886e21e203daaf2ebc291518027b077984f9174d8b94ff5fd?d=identicon)[imurchie](/maintainers/imurchie)

---

Top Contributors

[![imurchie](https://avatars.githubusercontent.com/u/2614354?v=4)](https://github.com/imurchie "imurchie (20 commits)")[![jlipps](https://avatars.githubusercontent.com/u/605053?v=4)](https://github.com/jlipps "jlipps (18 commits)")[![dpgraham](https://avatars.githubusercontent.com/u/852574?v=4)](https://github.com/dpgraham "dpgraham (4 commits)")[![benmag](https://avatars.githubusercontent.com/u/4386560?v=4)](https://github.com/benmag "benmag (2 commits)")[![scottdixon](https://avatars.githubusercontent.com/u/59898611?v=4)](https://github.com/scottdixon "scottdixon (2 commits)")[![Jonahss](https://avatars.githubusercontent.com/u/1521841?v=4)](https://github.com/Jonahss "Jonahss (1 commits)")[![pankaj-a](https://avatars.githubusercontent.com/u/9896838?v=4)](https://github.com/pankaj-a "pankaj-a (1 commits)")

---

Tags

phpunitseleniumappium

### Embed Badge

![Health badge](/badges/appium-php-client/health.svg)

```
[![Health](https://phpackages.com/badges/appium-php-client/health.svg)](https://phpackages.com/packages/appium-php-client)
```

###  Alternatives

[phpunit/phpunit

The PHP Unit Testing framework.

20.0k910.7M134.8k](/packages/phpunit-phpunit)[php-webdriver/webdriver

A PHP client for Selenium WebDriver. Previously facebook/webdriver.

5.2k90.0M127](/packages/php-webdriver-webdriver)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[phpunit/phpunit-selenium

Selenium Server integration for PHPUnit

59610.9M150](/packages/phpunit-phpunit-selenium)[sauce/sausage

PHP version of the Sauce Labs API

70807.6k3](/packages/sauce-sausage)[johnkary/phpunit-speedtrap

Find and report on slow tests in your PHPUnit test suite

78337.2M122](/packages/johnkary-phpunit-speedtrap)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
