Converting Katalon Scripts to Selenium Java: A Comprehensive Guide

Converting Katalon Scripts to Selenium Java: A Comprehensive Guide

26 February 2025 Stephan Petzl Leave a comment Katalon Issues

With the transition of Katalon Studio to a paid tool, many developers are seeking ways to convert their existing Katalon scripts, written in Groovy, into Selenium with Java. This guide aims to provide a structured approach to facilitate this conversion process, ensuring efficiency and minimal disruption to your testing workflows.

Understanding the Conversion Challenge

Katalon scripts utilize built-in libraries and keywords that act as wrappers around Selenium commands. This layered architecture means that there isn’t a direct one-to-one mapping between Katalon and Selenium. Therefore, a straightforward conversion method doesn’t exist, and a strategic approach is necessary.

Step-by-Step Conversion Process

Step 1: Create an Interface for Global Variables

Begin by setting up an interface to store global variables. This will help in maintaining a centralized location for data used across your tests.

public interface RunnerConstants {
    readByExcel rd = new readByExcel("Login.xls", "LoginData");
    public static final String url = rd.getexcelCellData(2, 0);
    public static final String userName = rd.getexcelCellData(2, 1);
    public static final String password = rd.getexcelCellData(2, 2);
    public static final String subscriberid = rd.getexcelCellData(2, 3);
    public static final String browserName = "Chrome-Headless";
}

Step 2: Implement the Page Factory Pattern

Create a class to store your WebElements using the Page Factory concept. This pattern helps in organizing elements and reduces code duplication.

public class takeElement {
    static WebDriver driver = webD.getInstance();
    
    @FindBy
    public static WebElement inputLogin = driver.findElement(By.xpath("//input[@id='loginID']"));
    
    @FindBy
    public static WebElement inputSubscriberId = driver.findElement(By.xpath("//input[@id='subscriberID']"));
    
    @FindBy
    public static WebElement submitbtn = driver.findElement(By.xpath("//input[@id='submitLogin']"));
}

Step 3: Create a WebDriver Singleton

Establish a singleton pattern for your WebDriver instance to ensure a single instance is used across all test classes.

Step 4: Implement Katalon Methods in a Custom Class

Create a class to encapsulate common Katalon methods as static methods. This allows for easy reuse and organization of your test actions.

public class WebUI {
    static WebDriver driver = webD.getInstance();
    
    public static void setDriver(WebDriver driver) {
        WebUI.driver = driver;
    }
    
    public static void openBrowser(String url) {
        driver.get(url);
    }
    
    public static void navigateToUrl(String url) {
        driver.navigate().to(url);
    }
}

Step 5: Write Your Test Scripts Using TestNG

Utilize TestNG annotations to structure your test scripts. This approach enhances test management and execution.

public class test {
    @Test
    public void testA() {
        WebUI.openBrowser(RunnerConstants.url);
        WebUI.setText(takeElement.inputLogin, RunnerConstants.userName);
        WebUI.setText(takeElement.inputPassword, RunnerConstants.password);
        WebUI.setText(takeElement.inputSubscriberId, RunnerConstants.subscriberid);
        WebUI.click(takeElement.submitbtn);
        WebUI.closeBrowser();
    }
}

Enhancing Test Automation with Repeato

As you transition from Katalon to Selenium, consider the benefits of using Repeato, a no-code test automation tool. Repeato allows for rapid creation, execution, and maintenance of automated tests for iOS, Android, and web applications. It uses computer vision and AI to streamline testing processes and supports data-driven and keyword-driven testing.

By utilizing Repeato, you can bypass some of the limitations faced with other tools like Katalon, such as language constraints and resource-intensive operations. Repeato’s ability to save test data in text and JSON formats ensures seamless integration with version control systems, providing a practical alternative for developers seeking efficient test automation solutions.

For more detailed insights into leveraging Repeato for your testing needs, explore our documentation.

Like this article? there’s more where that came from!