Let's now actually write unit tests using Playwright. Having
scripts is nice, but the typical use-case is testing. And in
Python, that usually means using
First, install the pytest plugin.
python -m pip install pytest-playwright
From here, you can use
playwright codegen to record your
steps. You can then copy the code as Pytest code, by selecting
"Pytest" from the dropdown.
from playwright.sync_api import Page, expect def test_example(page: Page) -> None: page.goto("https://calmcode.io/") page.get_by_role("button", name="More").click() page.locator("#dropdown-button-1").get_by_role("link", name="Datasets").click() page.get_by_role("row", name="bigmac logo bigmac.csv An economic indicator? csv 1331 71KB Detailed Info").get_by_role("link", name="Detailed Info").click() page.get_by_role("button", name="Explore bigmac.csv").click() expect(page).to_have_url("https://calmcode-datasette.fly.dev/calmcode/bigmac", timeout=1000)
Assuming this test is saved in a file named
test_e2e.py, you can
have pytest run it via:
The output should look familiar, it's just that right now the browser is running in the background on your behalf.