It is impossible to do two swipes back to back

In the Android app I have a scrolling list of addresses. I can’t do a few swipes, Katalon seems to try to do another swipe, but there’s no movement visible on the phone screen.

I tried adding delays and separating them with other actions, but nothing helps.

1 Like

Hi there, and thanks for posting in the Katalon community! :hugs:

To help you faster, please review our guide on Swipe here:

Double-checking the steps and configurations might resolve the issue.

If the doc doesn’t help, feel free to provide more details, and a community member will assist you soon. Thanks for being a part of our community!

Best,
Elly Tran

To resolve issues with consecutive swipes in Katalon for Android, follow these steps:

1. Use Explicit Waits Between Swipes

Avoid hard-coded delays (e.g., delay(2)). Instead, wait for a specific UI element to appear after the first swipe, ensuring the UI is ready for the next action:

// First swipe
Mobile.swipe(0, 1000, 0, 500) // Adjust coordinates as needed

// Wait for a visible element after swipe
Mobile.waitForElementPresent(findTestObject('ObjectRepository/item_after_swipe'), 10)

// Second swipe
Mobile.swipe(0, 1000, 0, 500)

2. Use Alternative Swipe Methods

Katalon’s generic Mobile.swipe() may fail on dynamic lists. Use element-specific swipes or TouchAction for precision:

import com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory
import io.appium.java_client.TouchAction
import io.appium.java_client.touch.offset.PointOption

// Get driver instance
def driver = MobileDriverFactory.getDriver()

// Swipe on a specific element
def listElement = findTestObject('ObjectRepository/address_list')
Mobile.swipe(0, listElement.getHeight() / 2, 0, -listElement.getHeight() / 2)

// Or use TouchAction for controlled gestures
new TouchAction(driver)
  .press(PointOption.point(500, 1500))
  .moveTo(PointOption.point(500, 500))
  .release()
  .perform()

3. Verify Swipe Boundaries

Ensure swipe coordinates are within the visible screen area and the list is actually scrollable. Use Appium Inspector or Android Studio’s Layout Inspector to check:

  • Start and end Y-coordinates (e.g., avoid swiping beyond the list’s bounds).
  • Whether the list has more items to scroll (e.g., check if isScrollable returns true).

4. Disable Animations (Developer Options)

Device animations can delay UI updates. Disable animations on the Android device:

  1. Enable Developer Options.
  2. Turn off:
  • Window animation scale
  • Transition animation scale
  • Animator duration scale

5. Check for Nested Scrollable Elements

If the list is inside a scrollable container (e.g., a ScrollView), use Android’s UIAutomator to target the correct element:

Mobile.swipeWithUiAutomator('new UiScrollable(new UiSelector().scrollable(true)).scrollForward()')

6. Debugging Tips

  • Logs: Check Katalon’s Console or Logs folder for errors like Failed to perform swipe.
  • Screen Recording: Use Katalon’s Mobile.startScreenRecording() to capture swipe behavior.
  • Manual Testing: Verify if manual swipes work in the same scenario (e.g., app might block automated actions).

7. Workaround: Use Scrolling Instead of Swiping

If swipes are unreliable, scroll to elements directly:

Mobile.scrollToText("Address_123") // Scroll to a specific text

By combining explicit waits, precise gestures, and UI validation, you should be able to resolve consecutive swipe issues