Skip to main content
Proton v5

Python projects

The runner recognizes a Python project by the pytest.ini at the root of the repository and runs:

uv run pytest tests/test_proton_script.py::test_run_proton_execution --id_dataset_run=<id>

uv​

The machine needs uv on the PATH of the user running the runner. On the first run, uv installs the project's dependencies and the Python version the project requires (3.10 or newer), if the machine doesn't have it.

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Open a new terminal and check:

uv --version

After installing, restart the Runner: it reads the PATH when it opens.

By platform​

Project platformWhat else the machine needs
APINothing besides uv.
Web (Playwright)Nothing on Windows: Playwright's Chromium browser is downloaded on the first run. On Linux, the system libraries the browser uses (below).
Mobile (Android)adb, Appium, and the device. See Mobile (Android).
SAP GUIWindows, SAP GUI with scripting enabled, and the Runner in the user's session. See SAP GUI.
Desktop (Windows)Windows and the Runner in the user's session, with the screen unlocked.

On Linux, install the browser libraries once (the command asks for the administrator password):

uvx playwright install-deps chromium

Desktop and SAP GUI automations​

Automations that work with Windows windows (pywinauto and SAP GUI Scripting) need an open, unlocked user session:

  • run Proton Runner with the same Windows user the windows will open under;
  • on a virtual machine, leave the session open and without a screen lock;
  • a minimized or disconnected remote desktop session can stop the automation: it's better to leave the session open in the virtual machine's console.

Run on the machine before the runner​

To check the machine, run the project on it, without Proton, as the template project explains:

uv sync
uv run pytest

If it passes in the terminal with the same Windows user, it will pass through the runner.