Search code examples
appiumappium-iosappium-android

Appium 6.1.0 TouchActions vs TouchAction


I was searching for the "right", or the "latest" way to create Tap/Swipe/Drag etc. events using the latest (at this point) Appium Java-client 6.1.0. I saw different documentations in the Appium site (Tap using TouchActions, Touch using TouchAction), and there is no reference as which should i use (and which is going to be deprecated?).

new TouchAction(driver)
    .tap(tapOptions()
    .withElement(element(myElement)))
    .perform();

new TouchActions(driver)
    .singleTap(myElement)
    .perform();

It seems that TouchActions is a part of the Selenium project and TouchAction is a part of the Appium, but it does not mean that the Appium is the correct way.

p.s I am using at the moment Chrome/Safari browsers for Android/iOS the testing, but that does not mean that i don't need native apps support for the code.

Thank you for your time


Solution

  • The latest approach to using TouchAction class is to use AndroidTouchAction class instead of TouchAction class as the same is now made generic. That's why you see @SuppressWarnings("rawtypes") being used in the last answer.

    This is how you will tap on an element in 6.1.0

    For Android:

    AndroidTouchAction touch = new AndroidTouchAction (driver);
    touch.tap (TapOptions.tapOptions ()
        .withElement (ElementOption.element (e)))
      .perform ();
    

    For iOS:

    IOSTouchAction touch = new IOSTouchAction (driver);
    touch.tap (TapOptions.tapOptions ()
        .withElement (ElementOption.element (e)))
      .perform ();