Skip to main content

Desktop applications testing with Winium in Katalon Studio

Katalon Studio primarily supports WebUI, Mobile, and API automation testing. To test desktop applications, you can use a Winium .jar package as a workaround.
  1. Download and extract the 1.6.0 Winium.Desktop.Driver.zip file from the Winium.Desktop GitHub release page: Winium.Desktop releases.
  2. Run Winium.Desktop.Driver.exe.
  3. Download the jar package here: Download Winium jar package.
  4. Go to Project > Settings > Library Management. In the External Libraries section, add the winium-elements-desktop-0.2.0-1.jar and winium-webdriver-0.1.0-1.jar.
  5. Copy and paste the following script to Katalon Studio.
    The script imports the Winium driver, then open the calculator and perform the predefined tasks.
    import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
    import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
    import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
    import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
    import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
    import com.kms.katalon.core.checkpoint.CheckpointFactory as CheckpointFactory
    import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as MobileBuiltInKeywords
    import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
    import com.kms.katalon.core.model.FailureHandling as FailureHandling
    import com.kms.katalon.core.testcase.TestCase as TestCase
    import com.kms.katalon.core.testcase.TestCaseFactory as TestCaseFactory
    import com.kms.katalon.core.testdata.TestData as TestData
    import com.kms.katalon.core.testdata.TestDataFactory as TestDataFactory
    import com.kms.katalon.core.testobject.ObjectRepository as ObjectRepository
    import com.kms.katalon.core.testobject.TestObject as TestObject
    import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WSBuiltInKeywords
    import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
    import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUiBuiltInKeywords
    import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
    import internal.GlobalVariable as GlobalVariable
    import org.openqa.selenium.By as By
    import org.openqa.selenium.WebElement as WebElement
    import org.openqa.selenium.winium.DesktopOptions as DesktopOptions
    import org.openqa.selenium.winium.WiniumDriver as WiniumDriver
    import java.net.MalformedURLException as MalformedURLException
    import java.net.URL as URL

    WiniumDriver driver = null

    String appPath = 'C:/windows/system32/calc.exe'

    DesktopOptions option = new DesktopOptions()

    option.setApplicationPath(appPath)

    option.setDebugConnectToRunningApp(false)

    option.setLaunchDelay(2)

    driver = new WiniumDriver(new URL('http://localhost:9999'), option)

    Thread.sleep(1000)

    driver.findElement(By.name('Seven')).click()

    driver.findElement(By.name('Plus')).click()

    driver.findElement(By.name('Eight')).click()

    driver.findElement(By.name('Equals')).click()

    driver.close()