To add Applitools visual checks to Robot Framework tests, install the eyes_robotframework package (it provides EyesLibrary), generate a configuration file, give it your Applitools API key, and run the vendor’s sample suite. Then open an Eyes session in your own tests, run visual checks, close the session, and review the first run’s results in the Applitools dashboard. This guide follows Applitools’ documented path and says where the sources leave details open.
What EyesLibrary is and what you need
EyesLibrary is Applitools’ visual verification library for Robot Framework. It is built on the Applitools Eyes Python SDK, and its keyword documentation names SeleniumLibrary (browsers) and AppiumLibrary (mobile and native apps) as the companion libraries that drive the application while Eyes captures and compares.
- Python 3 (the quickstart uses
python3; no minimum minor version is stated in the sources reviewed). - Robot Framework and an automation library that suits your application.
- The
eyes_robotframeworkpackage. - An Applitools API key.
- A browser or app the suite can drive.
If you are new to Robot Framework itself, the official getting-started documentation covers machine setup, first code, IDE configuration and library choice.
Step 1: Install the quickstart
Applitools publishes a Robot Framework quickstart repository. Its documented commands:
#1 Best Overall
git clone https://github.com/applitools/robotframework-quickstart.git
cd robotframework-quickstart
python3 -m pip install eyes_robotframework
Using python3 -m pip installs into the same interpreter you will run Robot with, which avoids the most common setup mismatch. A virtual environment is a sensible habit. The sources do not establish the latest package release or its compatibility with every current Python and Robot Framework version; the keyword reference I reviewed documents EyesLibrary 5.6.0. Check the package’s current release notes and pin versions in a requirements.txt so your CI matches your machine.
Step 2: Create the configuration and set the API key
From the project directory, generate a config file:
python3 -m EyesLibrary init-config
You can supply the key in applitools.yaml or through the APPLITOOLS_API_KEY environment variable. The environment variable is the safer choice for shared repositories and CI, where it belongs in your secret store rather than in committed files.
export APPLITOOLS_API_KEY="your-key-here"
python -m EyesLibrary lint-config applitools.yaml
The lint-config command, documented in the library reference, checks the configuration file. Never paste a real key into code, screenshots or public logs.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Step 3: Run the sample
python3 -m robot web.robot
Open web.robot and the configuration together to see how a working suite is wired. Robot writes its usual log.html and report.html, and the visual results appear in Applitools.
Step 4: Add visual checks to your own suite
The library reference describes one lifecycle:
- Start the browser or application with SeleniumLibrary or AppiumLibrary.
- Open an Eyes session.
- Perform visual checks.
- Close Eyes asynchronously.
Choosing a check scope
The library supports checking a whole window, or a narrower region or frame. Use a whole-window check for page-level layout and a region or frame check when only one component matters or the rest of the page is volatile (ads, timestamps). Exact keyword names and arguments vary by version, so copy them from the keyword reference or the sample suite rather than from memory.
Browser versus native app
Pair EyesLibrary with SeleniumLibrary for web pages and AppiumLibrary for mobile or native apps. The session lifecycle stays the same; only the driver changes.
Step 5: Review the baseline and results
Applitools’ Eyes First Steps (published 2021-04-28) says the first test creates a provisional baseline and that you analyze results in Eyes Test Manager. The Robot Framework tutorial by Ed Manlove (2021-11-23) runs a basic test, then changes the page on purpose so the difference shows in the dashboard.
Recommended Free Tools
Treat that first baseline as something to inspect, not trust: confirm the page was in the intended state (logged in, data loaded, no error banner) before accepting it. Later differences should be judged against the intended design. Both articles are from 2021, so dashboard labels may differ today; rely on current Applitools documentation for the exact workflow. Pricing and plan limits are not covered by these sources, so check Applitools directly.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
No module named EyesLibrary or robot cannot find the library |
Package installed in a different Python than the one running Robot | Activate the intended environment and reinstall with python3 -m pip install eyes_robotframework; run Robot with python3 -m robot. |
| Authentication or missing-key error | Key not visible to the test process | Set APPLITOOLS_API_KEY in the same shell or CI job, or add it to applitools.yaml; run lint-config. |
| Unknown keyword or wrong arguments | Keyword names differ between versions | Check the keyword reference for your installed version. |
| Results never appear in the dashboard | Eyes was not closed, or the run failed before closing | Make sure the close step runs, for example in a teardown. |
| Constant differences on every run | Dynamic content in the checked area | Scope the check to a stable region or stabilize the page state. |
Or skip the browser setup
Applitools compares screenshots your tests produce. If what you need is simply a clean image or PDF of a URL (for reports, thumbnails, archives or a quick look at a page), you do not need a Selenium driver at all. ScreenshotNeo is a screenshot API: one GET request returns a PNG, JPEG, WebP or PDF. See the docs for every option.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
In Robot Framework you can call it from the same Python environment, for instance through RequestsLibrary or a small custom keyword wrapping the request above.
- Cookie banners, newsletter popups and chat widgets are removed before the shot (60+ consent platforms are handled; each step can be turned off).
- Bot checks, blank pages, timeouts, failed loads and cache hits are never billed; the
X-Page-VerdictandX-Billedheaders tell you which it was. - An MCP server lets AI agents such as Claude or Cursor take screenshots with take_screenshot, get_page_info and capture_pdf.
- 1,000 screenshots a month are free with no card; paid plans start at $5 for 3,000.
This is a different job from Applitools: it captures pages, it does not provide baselines or visual diff review. Create a free ScreenshotNeo account to get an API key.
Frequently Asked Questions
Do I need SeleniumLibrary to use EyesLibrary?
You need an automation library that drives the application. The reference names SeleniumLibrary for browsers and AppiumLibrary for mobile or native apps.
Is the first run’s baseline automatically correct?
No. Applitools describes it as provisional. Review it in the dashboard before relying on it.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




