When exploring automation for Android with running Appium server, I noticed using Selenium WebDriver my code works fine. In a previous example, I saw Appium driver for iOS automation. So what is the basic difference with selenium or Appium WebDriver?
Selenium Webdriver -
- Support mobile web applications only
- WebDriver has become the de facto standard for automating web browsers, and is a W3C Working Draft.
Appium Webdriver -
- Support native mobile apps
- This class inherits from the RemoteWebDriver class, but it adds in additional functions that are useful in the context of a mobile automation test through the Appium server. refer
Both Selenium and Appium implement WebDriver - W3C standard protocol for browser automation (Selenium was first and is basis for coming standard). IOW your selenium webdriver scripts should be able to work with both Selenium and Appium.
Selenium is concerned about automation of browsers but not native desktop apps. Appium is aimed at both (so Appium drivers need to drive also native apps, need to implement also actions like swipe, pinch etc).
First of all, as some people mentioned, Selenium is the framework for doing Web automation (Chrome, Firefox etc) and Appium is for doing native app automation (iOS and Android app automation)
Secondly, both use similar methods and functions, as Appium is basically selenium but for mobile apps.
E.g.sendKeys() - It is the same for both Appium and Selenium
findByClassName(), findByElementId(), findByXPath() are both common to Appium and Selenium.
So based on what you are trying to automate you will decide to use Appium or Selenium