Skip to main content

Testing web apps using Robot Framework

This quickstart will show you how to visually test web apps using Robot Framework. Visual testing can help you catch problems that traditional automation struggles to find. You can also leverage Applitools Ultrafast Grid to run your tests across all the major browsers in a fraction of the time as other cross-browser testing platforms.

After preparing your environment, this three-step quickstart should take about 15 minutes to complete.

Need extra help?

If you get stuck on this example, don't suffer in silence! Please reach out to us to get things working. We can also help you get Applitools running in your own project.

Step 1: Preparing your environment

You'll need a few things to run this quickstart:

  1. An Applitools account, which you can register for free.

  2. Python version 3.6 or higher.

  3. A good editor with Robot Framework support like Visual Studio Code.

  4. An up-to-date version of Google Chrome.

  5. A corresponding version of ChromeDriver.

    Installing ChromeDriver

    The major version numbers of Chrome and ChromeDriver must be the same. Otherwise, Selenium WebDriver may raise an exception when it is initialized. For example, Chrome v101 requires ChromeDriver v101.

    ChromeDriver must be installed into a directory covered by the system PATH variable. Follow the instructions on Selenium's Install browser drivers page. On macOS and Linux, the recommended location for the chromedriver executable is the /usr/local/bin directory.

    You can test that ChromeDriver is working by running the chromedriver -v command to print its version.

Step 2: Getting your example project

Downloading the example project

The example project is located at Clone this repository to your local machine:

git clone
cd example-robot-framework
Don't have Git?

Instead of running git clone, you can download the project as a ZIP file and extract it.

Installing the dependencies

The example project uses pip for package management. Run the following command (which works on any operating system):

pip3 install -r requirements.txt
Adding Applitools to Another Robot Framework Project?

This example project already declares the Applitools Eyes SDK as a dependency. If you want to add the Applitools Eyes SDK into an existing Python environment, run the following command:

pip3 install eyes-robotframework

Then, generate the Applitools configuration file:

python3 -m EyesLibrary init-config

Deciding how to run tests

There are two ways to test the visual snapshots captured by the test:

  1. Using Applitools Ultrafast Grid for cross-browser testing in the cloud
  2. Using Applitools Classic runner on your local machine

If you are not sure which one to pick, read Leveraging the Applitools platform. For most cases, we recommend Applitools Ultrafast Grid. The docs for Ultrafast Grid and Classic runner provide more information.

Walking through the code

The project contains one visual test case, which is located at acme_bank.robot. It is a Robot Framework test script that covers login behavior for the ACME Bank demo web app. It uses the Applitools Eyes SDK to execute the test. You can control which way tests are run by changing the EyesLibrary runner setting:

  • runner=web_ufg for the Ultrafast Grid
  • runner=web for the Classic runner

The applitools.yaml file in the project root directory provides the configuration to run this visual test. Its configuration applies to all test cases in the project:

Step 3: Running your tests

Setting Applitools variables

Before running the visual test, you must find your Applitools API key and set it as an environment variable named APPLITOOLS_API_KEY. You may set it through your IDE (if applicable), or you may set it from the command line like this:

export APPLITOOLS_API_KEY=<your-api-key>
Having trouble with environment variables?

If you have trouble setting the APPLITOOLS_API_KEY environment variable, you can hard-code your API key like this:

# Add the following line in the 'applitools.yaml' file:
api_key: <your-api-key>

However, be warned: hard-coding secrets is poor practice. Do this only temporarily for debugging, and never commit hard-coded secrets to version control.

You may also need to set your Applitools Eyes server. By default, tests will use the public Applitools Eyes server at However, if your team is using a private Applitools Eyes server, you can target it by setting the APPLITOOLS_SERVER_URL environment variable. (If you are using a free Applitools account, then use the public server.)

Launching visual tests

Run the following command to launch tests:

robot acme_bank.robot

Tests will run using headless Chrome.

After your tests run, you should see results in the Eyes Test Manager. You can log into the Test Manager at or at the address for your private Applitools Eyes server.

When you run tests with the Applitools Ultrafast Grid, the tests will run one time on the local machine, and then they will upload snapshots to render on each target configuration in the cloud. The Test Manager will show a separate result for each rendering. When you run tests with the Applitools Classic runner, the Test Manager will show the one snapshot from your local machine.

You can also change the web page to inject visual bugs:

#     Open Browser                  headlesschrome
Open Browser headlesschrome

If you rerun the tests, then they should yield "unresolved" results for you to review. Visual differences will be highlighted in magenta. It's up to you to accept (👍) or reject (👎) the changes. Applitools will remember your decisions for future analysis.

Need extra help?

Again, it's okay. If you get stuck on this example, don't suffer in silence! Please reach out to us to get things working. We can also help you get Applitools running in your own project.

Taking the next steps with Applitools

Congratulations on completing this quickstart! There's still so much to learn about visual testing with Applitools, but you're off to a great start.

Resources for next steps:

  1. 🤖 Learning how visual testing works
  2. ↔️ Setting match levels for visual checkpoints
  3. 💥 Troubleshooting common issues
  4. 🐞 Reporting bugs
  5. 🗺 Detailed overview of visual testing with Applitools

You can also: