There an official playwright plugin for pytest: PyPI / playwright-pytest / intro. But if you need an async version, here is it!
pip install pytest-playwright-async
Here you can find more examples.
# tests/async/conftest.py
import pytest
# install anyio
# install uvloop
@pytest.fixture(
scope='session',
params=[
# https://anyio.readthedocs.io/en/stable/testing.html#specifying-the-backends-to-run-on
pytest.param(('asyncio', {'use_uvloop': True}), id='asyncio+uvloop'),
pytest.param(('asyncio', {'use_uvloop': False}), id='asyncio'),
# pytest.param(('trio', {'restrict_keyboard_interrupt_to_checkpoints': True}), id='trio'),
],
autouse=True,
)
def anyio_backend(request):
return request.param
# tests/async/test_for_readme.py
from playwright.async_api import Page
async def test_page_async(page_async: Page):
print(f'\n{page_async = }')
await page_async.goto('https://playwright.dev/')
assert 'Playwright' in await page_async.title()