Skip to main content

Smart Wait function

This article shows you how to enable and use the Smart Wait function in Katalon Studio.

The Smart Wait function tackles the timing issue of automated web testing by automatically waiting for all front-end processes of a page to complete before taking further test steps. This function helps reduce the risk of test failures caused when the page has not fully loaded.

Katalon Studio allows you to use the Smart Wait function as a browser extension.

Download the Smart Wait sample project from our GitHub repository: Smart Wait sample tests.

Note:
  • From Katalon Studio 10.0.0, Smart Wait no longer requires an unpacked extension in browsers that support BiDi (Bidirectional communication), including Chrome, Edge, Firefox, and headless browsers.
    • For environments that do not support BiDi (such as Safari, remote browsers, or TestCloud environments), Smart Wait still requires an unpacked extension to operate correctly.

    • To disable BiDi for environments that don't support it, set "webSocketUrl": false in the desired capabilities.

Enable Smart Wait in Katalon Studio

Smart Wait is enabled by default in Project > Settings > Execution > WebUI. This default configuration will automatically apply Smart Wait to all elements in that project.
smart wait

Temporarily turn off Smart Wait

The Default Smart Wait function is enabled.

You can use the enableSmartWait and disableSmartWait keywords to enable/disable Smart Wait during the test temporarily.

Use the enableSmartWait or disableSmartWait keywords to enable/disable Smart Wait on your target elements.

In the following example, we first use the disableSmartWait keyword to disable Smart Wait at the beginning of the test temporarily.

Then we use the enableSmartWait keyword to enable Smart Wait when setting text on the Username object. Smart Wait is enabled until the disableSmartWait keyword is applied.

WebUI.disableSmartWait()

WebUI.openBrowser('')

WebUI.navigateToUrl('https://store.katalon.com/')

WebUI.maximizeWindow()

WebUI.click(findTestObject('signin-link'))

WebUI.enableSmartWait()

WebUI.setText(findTestObject('username'), 'demo@katalon.com')

WebUI.setEncryptedText(findTestObject('password'),'3zBGMH+v8QQXwX1AbEAx2g==')

WebUI.click(findTestObject('signin-button'))

WebUI.click(findTestObject('menu-dropdown'))

WebUI.click(findTestObject('dashboard-item'))

WebUI.click(findTestObject('plugins-item'))

WebUI.disableSmartWait()

WebUI.closeBrowser()

Workaround for remote execution

The following is a workaround for applying Smart Wait extension for remote execution.

To apply Smart Wait for remote execution in Chrome for Katalon Studio, follow these steps:

  1. In the node machine
    1. Download a Katalon .zip package. You can download different versions of the Katalon package from our GitHub repository: Katalon releases.
    2. Unzip the file and locate the Smart Wait folder.

      For macOS: <Katalon Studio folder>/Contents/Eclipse/configuration/resources/extensions/Chrome/Smart Wait

      For Windows: <Katalon Studio folder>\configuration\resources\extensions\Chrome\Smart Wait

  2. In the test runner machine: The test runner machine is where you install Katalon Studio and store the test scripts.
    1. Open Katalon Studio.
    2. Go to Project > Settings > Desired Capabilities > Remote, then fill in the following information:
      • Remote Server URL: http://localhost:port/wd/hub - the URL of the hub machine.

      • Remote Server Type: Choose Selenium.

      • Click Add on the command toolbar, then input the following values:

        NameTypeValue
        browserNameStringchrome
        goog:chromeOptionsDictionaryClick More (...). In the pop-up Dictionary Property Builder dialog, click Add, then input values from Table 2.
        NameTypeValue
        argsListload-extension=<the absolute path to the Smart Wait folder located in the node machine>

        Apply Smart Wait for remote execution in Chrome

Was this page helpful?