Skip to main content

Handling Drag and Drop in Mobile App in Katalon Studio

In this tutorial, we will see how to handle drag and drop action in a mobile application using Katalon Studio. The source code can be downloaded here.

Scenario

The scenario is to drag and drop a draggable object containing the text "Brad Mehldau" and a droppable object containing the text "Kurt Rosenwinkel".

  • Step 1: Start the Application (Drag and Drop.apk)
  • Step 2: Tap on Basic Usage playground text
  • Step 3: Drag Brad Mehldau text to drop at Kurt Rosenwinkel text

Manual Mode

  • Step 1: Select Start Application from mobile keyword and click on Input to open a new dialogue. In appFile, select 'Value Type' as Variable. In Value, pass the variable name as 'path'.

Handling Drag and Drop in Mobile App

  • Step 2: Add a Wait For Element Present item to wait for Basic Usage playground to pop up.
  • Step 3: Select Tap from mobile keyword and pass the object of Basic Usage playground.
  • Step 4: Similarly, add a Wait For Element Present item to wait for the 'Brad Mehldau' text.
  • Step 5: Select the DragAndDrop keyword to perform the drag and drop action.
  • Step 6: The draggable object will be dragged into the droppable object.

Handling Drag and Drop in Mobile App

You can utilize our Script feature to automate the test.

Script Mode

import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject

import com.kms.katalon.core.configuration.RunConfiguration as RunConfiguration

import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile

import com.kms.katalon.core.model.FailureHandling as FailureHandling



'Path of the Apk File Store in path variable'

def path = RunConfiguration.getProjectDir() + '/Data Files/Drag and Drop.apk'



'Start the Application'

Mobile.startApplication(path, false)



'Wait for Element Present of text "Basic Usage playground"'

Mobile.waitForElementPresent(findTestObject('Drag Sort Demos/Handle Drag and Drop/text_Basic Usage playground'), 30)



'Verify Element visible of "Basic Usage playground"'

Mobile.verifyElementVisible(findTestObject('Drag Sort Demos/Handle Drag and Drop/text_Basic Usage playground'), 30)



'Tap on "Basic Usage playground"'

Mobile.tap(findTestObject('Drag Sort Demos/Handle Drag and Drop/text_Basic Usage playground'), 30)



'Wait for Element Present of "Brad Mehldau"'

Mobile.waitForElementPresent(findTestObject('Drag Sort Demos/Handle Drag and Drop/text_Brad Mehldau'), 30)



'Verify Element visible of "Brad Mehldau"'

Mobile.verifyElementVisible(findTestObject('Drag Sort Demos/Handle Drag and Drop/text_Brad Mehldau'), 30)



'Use the dragAndDrop keyword to perform the drag and drop action.'

Mobile.dragAndDrop(findTestObject('Drag Sort Demos/Handle Drag and Drop/text_Brad Mehldau'), findTestObject('Drag Sort Demos/Handle Drag and Drop/text_Kurt Rosenwinkel'),

30)



Mobile.delay(50, FailureHandling.STOP_ON_FAILURE)



Mobile.closeApplication()