# Difference between WebElement, MobileElement, AndroidElement, and iosElement

**URL:** <https://discuss.appium.io/t/difference-between-webelement-mobileelement-androidelement-and-ioselement/5254>\
**Category:** Support\
**Created:** [July 20, 2015, 6:42am UTC](https://discuss.appium.io/t/difference-between-webelement-mobileelement-androidelement-and-ioselement/5254 "2015-07-20T06:42:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Deepa\_S](https://discuss.appium.io/letter_avatar_proxy/v4/letter/d/5f8ce5/32.png) [@Deepa\_S](https://discuss.appium.io/u/Deepa_S)\
**Post date:** [July 20, 2015, 6:42am UTC](https://discuss.appium.io/t/difference-between-webelement-mobileelement-androidelement-and-ioselement/5254/1 "2015-07-20T06:42:17Z")

</div>

Can anyone please explain what happen if we use WebElement, MobileElement, AndroidElement and IOS Element??

I have used WeElement for web application. When I started Appium I used WebElement and everything is working fine but I dont know the exact difference between these.

---

<div class="post-metadata">

**Author:** ![bhaskar](https://discuss.appium.io/user_avatar/discuss.appium.io/bhaskar/32/1204_2.png) [@bhaskar](https://discuss.appium.io/u/bhaskar)\
**Post date:** [July 21, 2015, 9:47am UTC](https://discuss.appium.io/t/difference-between-webelement-mobileelement-androidelement-and-ioselement/5254/2 "2015-07-21T09:47:22Z")

</div>

Hi @Deepa_S,

Apparently, I believe WebElement is for identification of Web Based element using WebDriver, Android,iOS & Mobile elements are specific to AppiumDriver abstract class in Appium client libraries.

We need some clarification on all the above…Could you please let us know if any one knows exactly.!!!

@jonahss @Appium_Master @sebv @rgonalo @willosser @Hassan_Radi @kirill  
Thanks,  
Bhaskar.

---

<div class="post-metadata">

**Author:** ![Hassan\_Radi](https://discuss.appium.io/user_avatar/discuss.appium.io/hassan_radi/32/4077_2.png) [@Hassan\_Radi](https://discuss.appium.io/u/Hassan_Radi)\
**Post date:** [July 21, 2015, 10:53am UTC](https://discuss.appium.io/t/difference-between-webelement-mobileelement-androidelement-and-ioselement/5254/3 "2015-07-21T10:53:32Z")

</div>

[WebElement](https://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html) is a general interface that all the other classes (RemoteWebElement, MobileElement, AndroidElement, IOSElement) implement. which means that if you have an object of type WebElement it will have all the basic functions a web element can have. If you need more specific functions you can use other objects like: RemoteWebElement, MobileElement, AndroidElement, IOSElement

Also note that WebElement & RemoteWebElement are bundled with Selenium while MobileElement, AndroidElement & IOSElement are specific to Appium.

For a list of the specific functions in each of them please refer to:  
[RemoteWebElement](https://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/remote/RemoteWebElement.html), [MobileElement](http://appium.github.io/java-client/io/appium/java_client/MobileElement.html), [AndroidElement](http://appium.github.io/java-client/io/appium/java_client/android/AndroidElement.html), [IOSElement](http://appium.github.io/java-client/io/appium/java_client/ios/IOSElement.html).

---

<div class="post-metadata">

**Author:** ![jonahss](https://discuss.appium.io/user_avatar/discuss.appium.io/jonahss/32/5340_2.png) [@jonahss](https://discuss.appium.io/u/jonahss)\
**Post date:** [July 30, 2015, 4:13pm UTC](https://discuss.appium.io/t/difference-between-webelement-mobileelement-androidelement-and-ioselement/5254/4 "2015-07-30T16:13:00Z")

</div>

Basically, using WebElement will let you use all the normal Selenium commands. MobileElement is appium’s element which subclasses WebElement and adds appium-specific features (like being able to perform Touch Gestures).  
AndroidElement and IOSElement implement MobileElement and add OS-specific features. Like on Android you can use `findByUIAutomator` and on iOS you can use `findByUIAutomation`

---

<div class="post-metadata">

**Author:** ![Deepa\_S](https://discuss.appium.io/letter_avatar_proxy/v4/letter/d/5f8ce5/32.png) [@Deepa\_S](https://discuss.appium.io/u/Deepa_S)\
**Post date:** [August 7, 2015, 11:48am UTC](https://discuss.appium.io/t/difference-between-webelement-mobileelement-androidelement-and-ioselement/5254/5 "2015-08-07T11:48:01Z")

</div>

Thank you Jonahss… nice explanation…

---

<div class="post-metadata">

**Author:** ![Harjeet\_Summan](https://discuss.appium.io/user_avatar/discuss.appium.io/harjeet_summan/32/6414_2.png) [@Harjeet\_Summan](https://discuss.appium.io/u/Harjeet_Summan)\
**Post date:** [July 31, 2020, 7:07am UTC](https://discuss.appium.io/t/difference-between-webelement-mobileelement-androidelement-and-ioselement/5254/6 "2020-07-31T07:07:32Z")

</div>

One of the biggest difference is that if you want to locate elements on mobile device using findElementByAccessibilityId(locator) then you have to use MobileElement. If you use WebElement then you will not be allowed to findElementByAccessibilityId(locator).
