Skip to main content

Playwright Python overview

This SDK allows you to work with Applitools Eyes using Playwright Python.

For information about installing and configuring this SDK, see Testing web apps in Python using Playwright on the Applitools Tutorial site.

Getting started

To get started with this SDK, you need to set the following:

Entering the Applitools API key

To authenticate via the Applitools server and run tests, you need to set the environment variable APPLITOOLS_API_KEY to the API key provided from Applitools Eyes. For details how to retrieve your API key, see the Applitools documentation.

Entering the API Key on Linux or a Mac


Entering the API Key on Windows


Eyes server URL

If the Eyes server is not deployed in, you need to set the Server URL in the environment variable APPLITOOLS_SERVER_URL before running tests.

The server URL of your Applitools Eyes dashboard is in the format https://<MY_COMPANY>

Entering the server URL on Linux or a Mac


Entering the server URL on Windows


Recommended practice for using the SDK

A test in Applitools Eyes always starts with a call and ends with eyes.close. The steps in the test are calls to eyes.check between and eyes.close calls.

A test is structured as following:
[step 1]
[step 2]


This SDK uses the following Runner classes:

ClassicRunner class

An object of this class is used to manage multiple Eyes sessions when working without the Ultrafast Grid


To define the class:

runner = ClassicRunner()

VisualGrid runner

An object of this class is used to manage multiple Eyes sessions when working with the Ultrafast Grid.


To define the class:

runner = VisualGridRunner(RunnerOptions().test_concurrency(5))


This command returns an object with the results from a test or test file. This command should be called after all Eyes tests have been completed.



Eyes class

Eyes Class enables visual testing with Applitools Eyes.


To define the class:

eyes = Eyes(runner)

This method creates an Eyes test. This will start a session with the Applitools server.

from applitools.common import RectangleSize, "app name", "test name", RectangleSize(1280, 800))


  • "app name" – The application name, this may be any string. You can set the application name for all tests using the Configuration.set_app_name. If the app name is set in Configuration.set_app_name, set this parameter to null.
  • "test name" – The name of the test. This name must be unique within the scope of the application name. It may be any string.
  • RectangleSize(width, height)) (Optional) - Defines the viewport size of the browser that will be set before the start of the test. If this parameter is not provided, the viewport size will be based on the current browser window size.


This command generate a screenshot of the current page and adds it to the Eyes test.



Closes the Eyes test but does not wait for the Eyes server to return a result. This command enables your system to continue running tests while Eyes completes its comparisons in the background. You should call this command at the end of each test, symmetrically to

After executing all Eyes tests, your code should call Runner.getAllTestResults to retrieve all test results as a TestResultsSummary.



Closes the Eyes test and waits for the Eyes Server to return a single result. The close command then returns a TestResults object with detailed test result data. This method takes an optional boolean parameter, if false it will not throw an exception if the test found differences (default is true). You should call this command at the end of each test, symmetrically to


This is a legacy API as it only returns a single result. We recommend using eyes.closeAsync and eyes.getResult instead of this API.


Return value: TestResults


Returns TestResults for the last test (open- ... -close) by the Eyes instance.

If you call get_results before eyes.close_async the method aborts the test.



Log files are automatically saved in the temp directory of the machine the tests ran on.

By default, the log directory is <os temp directory>/applitools-logs

You can locate it as follows:

  • Mac/Linux: $TMPDIR/applitools-logs/
  • Windows: %Temp%/applitools-logs/

When running the tests remotely, you can specify the path to the logs using the environment variable APPLITOOLS_LOG_DIR=<full path to log_dir>

Other Significant classes

When working with this SDK, you should be familiar with the following classes:

  • BatchInfo class - To configure the batch for one or more test, use the following to call the Configuration.set_batch method with an object of this class:

    config = Configuration()
    config.set_batch(BatchInfo("Name of the batch"))
  • Configuration class - Creates a configuration object that is used to configure an Eyes object by passing it to the Eyes.set_configuration method:

    eyes = Eyes()