# Difference between click() and tap()

**URL:** <https://discuss.appium.io/t/difference-between-click-and-tap/295>\
**Category:** Tutorials/Documentation\
**Created:** [September 10, 2014, 11:02pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295 "2014-09-10T23:02:06Z")\
**Posts on this page:** 19\
**Page:** 2

<div class="post-metadata">

**Author:** ![willosser](https://discuss.appium.io/user_avatar/discuss.appium.io/willosser/32/2454_2.png) [@willosser](https://discuss.appium.io/u/willosser)\
**Post date:** [February 24, 2016, 5:16pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/22 "2016-02-24T17:16:06Z")

</div>

You can use x-y coordinates if you know them to tap that region of the screen

---

<div class="post-metadata">

**Author:** ![Jaswitha](https://discuss.appium.io/letter_avatar_proxy/v4/letter/j/46a35a/32.png) [@Jaswitha](https://discuss.appium.io/u/Jaswitha)\
**Post date:** [February 24, 2016, 5:58pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/23 "2016-02-24T17:58:36Z")

</div>

Hello ,

Thanks for the reply .I know the coordinates but either of the tap function or long press function is not able to perform the touch on the canvas.

Thanks  
Jaswitha

---

<div class="post-metadata">

**Author:** ![reachBharathan](https://discuss.appium.io/letter_avatar_proxy/v4/letter/r/ee7513/32.png) [@reachBharathan](https://discuss.appium.io/u/reachBharathan)\
**Post date:** [February 24, 2016, 6:26pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/24 "2016-02-24T18:26:38Z")

</div>

is this app a hybrid app or native app? if your app is a hybrid then you not be able to inspect element using UI automator you can try use chrome remote debugger.

---

<div class="post-metadata">

**Author:** ![Jaswitha](https://discuss.appium.io/letter_avatar_proxy/v4/letter/j/46a35a/32.png) [@Jaswitha](https://discuss.appium.io/u/Jaswitha)\
**Post date:** [February 24, 2016, 6:37pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/25 "2016-02-24T18:37:58Z")

</div>

Thanks .It is a native app.I will try chrome remote bugger .The main problem is with touching the object even though i have exact coordinates. I can actually see that it is performing touch by enabling show touches settings option in my tablet .Besides i am not able to see the window that has to be opened after touch is performed.

---

<div class="post-metadata">

**Author:** ![Jaswitha](https://discuss.appium.io/letter_avatar_proxy/v4/letter/j/46a35a/32.png) [@Jaswitha](https://discuss.appium.io/u/Jaswitha)\
**Post date:** [February 25, 2016, 9:31pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/26 "2016-02-25T21:31:54Z")

</div>

![](https://discuss.appium.io/uploads/default/original/2X/1/16f5040d781715818d168a642b9bf9015d6684c3.png)

on the green card i need to tap.But it is not performing touch on this card.Can anyone help me with this.

---

<div class="post-metadata">

**Author:** ![adurrani87](https://discuss.appium.io/letter_avatar_proxy/v4/letter/a/ed655f/32.png) [@adurrani87](https://discuss.appium.io/u/adurrani87)\
**Post date:** [May 18, 2016, 8:42pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/27 "2016-05-18T20:42:08Z")

</div>

One quick question about the coordinates. Is it correct that when you dump the View Hierarchy from the DDMS and then click on the specific element you get the coordinates?

---

<div class="post-metadata">

**Author:** ![ravikr42](https://discuss.appium.io/user_avatar/discuss.appium.io/ravikr42/32/1493_2.png) [@ravikr42](https://discuss.appium.io/u/ravikr42)\
**Post date:** [June 3, 2016, 4:02pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/28 "2016-06-03T16:02:43Z")

</div>

Hi Osamaa

you can get element co-ordinates from the WebElement itself.  
Try the below code :  
WebElement ele = driver.findElement(By.className(“abc”));  
Point loc = ele.getLocation();  
int x = loc.getX();  
int y = loc.getY();  
driver.tap(x, ele, y);

Hope this will help 🙂

---

<div class="post-metadata">

**Author:** ![Nivi](https://discuss.appium.io/letter_avatar_proxy/v4/letter/n/898d66/32.png) [@Nivi](https://discuss.appium.io/u/Nivi)\
**Post date:** [July 19, 2016, 12:06pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/29 "2016-07-19T12:06:22Z")

</div>

your solution worked for me. Thanks

---

<div class="post-metadata">

**Author:** ![nitinmania](https://discuss.appium.io/letter_avatar_proxy/v4/letter/n/e19b73/32.png) [@nitinmania](https://discuss.appium.io/u/nitinmania)\
**Post date:** [December 6, 2016, 11:27am UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/30 "2016-12-06T11:27:44Z")

</div>

This is what worked for me.

---

<div class="post-metadata">

**Author:** ![otalfredo8](https://discuss.appium.io/user_avatar/discuss.appium.io/otalfredo8/32/7330_2.png) [@otalfredo8](https://discuss.appium.io/u/otalfredo8)\
**Post date:** [July 12, 2021, 7:02pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/31 "2021-07-12T19:02:00Z")

</div>

As Appium java-client works directly with mobile native gestures.

---

<div class="post-metadata">

**Author:** ![Innaya](https://discuss.appium.io/user_avatar/discuss.appium.io/innaya/32/9497_2.png) [@Innaya](https://discuss.appium.io/u/Innaya)\
**Post date:** [December 7, 2021, 11:05am UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/32 "2021-12-07T11:05:10Z")

</div>

> [@ravikr42](#):
>
> WebElement ele = driver.findElement(By.className(“abc”));  
> Point loc = ele.getLocation();  
> int x = loc.getX();  
> int y = loc.getY();  
> driver.tap(x, ele, y);

Hi, i used your solution but it marked red underline below word “tap”

---

<div class="post-metadata">

**Author:** ![Aleksei](https://discuss.appium.io/user_avatar/discuss.appium.io/aleksei/32/6267_2.png) [@Aleksei](https://discuss.appium.io/u/Aleksei)\
**Post date:** [December 7, 2021, 11:17am UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/33 "2021-12-07T11:17:23Z")

</div>

you taking left upper corner! which is wrong. change it to:

```auto
MobileElement ele = (MobileElement) driver.findElement(By.className("abc"));
Point loc = ele.getCenter(); // gives NPE if element NOT exists

```

regarding tap use:

1. best: [http://appium.io/docs/en/commands/interactions/actions/](http://appium.io/docs/en/commands/interactions/actions/)
2. [http://appium.io/docs/en/commands/interactions/touch/tap/](http://appium.io/docs/en/commands/interactions/touch/tap/)
3. 

```auto
PointOption pointOption = new PointOption().withCoordinates(loc.x, loc.y);
new TouchAction(driver).tap(pointOption).perform();

```

1. there also other ways …

---

<div class="post-metadata">

**Author:** ![Innaya](https://discuss.appium.io/user_avatar/discuss.appium.io/innaya/32/9497_2.png) [@Innaya](https://discuss.appium.io/u/Innaya)\
**Post date:** [December 7, 2021, 11:25am UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/34 "2021-12-07T11:25:50Z")

</div>

Thanks for reply, but now getting red mark below “MobileElement”

---

<div class="post-metadata">

**Author:** ![Aleksei](https://discuss.appium.io/user_avatar/discuss.appium.io/aleksei/32/6267_2.png) [@Aleksei](https://discuss.appium.io/u/Aleksei)\
**Post date:** [December 7, 2021, 11:30am UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/35 "2021-12-07T11:30:36Z")

</div>

This is appium element. What appium java client you use? MobileElement should be even in very old.

---

<div class="post-metadata">

**Author:** ![Innaya](https://discuss.appium.io/user_avatar/discuss.appium.io/innaya/32/9497_2.png) [@Innaya](https://discuss.appium.io/u/Innaya)\
**Post date:** [December 7, 2021, 11:34am UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/36 "2021-12-07T11:34:47Z")

</div>

> [@Aleksei](#):
>
> new TouchAction(driver).tap(pointOption).perform();

im using java-client-8.0.0-beta

---

<div class="post-metadata">

**Author:** ![mykola-mokhnach](https://discuss.appium.io/user_avatar/discuss.appium.io/mykola-mokhnach/32/4578_2.png) [@mykola-mokhnach](https://discuss.appium.io/u/mykola-mokhnach)\
**Post date:** [December 7, 2021, 11:51am UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/37 "2021-12-07T11:51:27Z")

</div>

> <https://github.com/appium/java-client/blob/master/docs/v7-to-v8-migration-guide.md#elements-lookup>

---

<div class="post-metadata">

**Author:** ![Aleksei](https://discuss.appium.io/user_avatar/discuss.appium.io/aleksei/32/6267_2.png) [@Aleksei](https://discuss.appium.io/u/Aleksei)\
**Post date:** [December 7, 2021, 11:56am UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/38 "2021-12-07T11:56:00Z")

</div>

I am still with old. With new client you can use old `WebElement`

---

<div class="post-metadata">

**Author:** ![Innaya](https://discuss.appium.io/user_avatar/discuss.appium.io/innaya/32/9497_2.png) [@Innaya](https://discuss.appium.io/u/Innaya)\
**Post date:** [December 7, 2021, 12:09pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/39 "2021-12-07T12:09:58Z")

</div>

> [@Aleksei](#):
>
> getCenter();

When i changed to WebElement, there is no error in script but got this error in console

 ![image](https://discuss.appium.io/uploads/default/original/2X/f/f7bac567b5dc0c194ec1595aa4a6fc652548fb8b.png)

---

<div class="post-metadata">

**Author:** ![Aleksei](https://discuss.appium.io/user_avatar/discuss.appium.io/aleksei/32/6267_2.png) [@Aleksei](https://discuss.appium.io/u/Aleksei)\
**Post date:** [December 7, 2021, 12:19pm UTC](https://discuss.appium.io/t/difference-between-click-and-tap/295/40 "2021-12-07T12:19:58Z")

</div>

@Innaya pls read doc migration sent by `mykola-mokhnach`  
-\>

```auto
The changes made in Selenium 4 broke class name selector strategy in Appium. AppiumBy.className should be used instead of Selenium's By.className now.

```

[Previous page](https://discuss.appium.io/t/difference-between-click-and-tap/295.md?page=1)
