Appium Client Libraries
The Appium client libraries wrap standard Selenium client libraries. Further it provide all the regular selenium commands dictated by the JSON Wire protocol, and add extra commands related to controlling mobile devices. Examples includes multi-touch gestures and screen orientation.
These client libraries implement the Mobile JSON Wire Protocol, and elements of the W3C Webdriver spec. In general, a transport-agnostic automation spec, this is where the MultiAction API is defined).
Also the Appium server itself defines custom extensions to the official protocols, giving Appium users helpful access to various device behaviors. This is why we need Appium-specific clients, not just the ‘vanilla’ Selenium clients. Of course, Appium client libraries only add functionality, so they can still be used to run regular Selenium sessions.
Language/Framework | Github Repo |
Ruby | https://github.com/appium/ruby_lib, https://github.com/appium/ruby_lib_core |
Python | https://github.com/appium/python-client |
Java | https://github.com/appium/java-client |
JavaScript (Node.js) | https://github.com/admc/wd |
JavaScript (Node.js) | https://github.com/webdriverio/webdriverio |
JavaScript (Browser) | https://github.com/projectxyzio/web2driver |
Objective C | https://github.com/appium/selenium-objective-c |
PHP | https://github.com/appium/php-client |
C# (.NET) | https://github.com/appium/appium-dotnet-driver |
RobotFramework | https://github.com/jollychang/robotframework-appiumlibrary |