Playwright – це інструмент автоматизації end-to-end тестування, котрий надає високорівневий API для керування браузером, що дозволяє взаємодіяти з веб-елементами та імітувати реальну поведінку користувача. Playwright існує у версіях для JavaScript, Python, Java, C#.
В цьому записі буде розглянуто приклад початку роботи з Playwright для мови програмування Python, а також написання простого автоматичного тесту використовуючи плагін pytest-playwright.
Попередні налаштування
Для свого прикладу я буду використовувати середовище virtualenv та менеджер пакетів pip. Докладніше з цими інструментами можна ознайомитись за посиланням:
Virtualenv – інструмент для створення ізольованих середовищ Python
Попередньо слід встановити пакет pytest-playwright за допомогою наступної команди:
pip install pytest-playwrightpytest-playwright є плагіном, що інтегрує Playwright з фреймворком Python для тестування – Pytest.
Далі потрібно встановити необхідні двійкові файли браузерів, які будуть зберігатись локально і використовуватись Playwright для запуску та взаємодії з браузерами. Їх можна встановити за допомогою наступної команди інструмента командного рядка Playwright:
playwright installPlaywright підтримує роботу з браузерами Chromium, Firefox, WebKit. Для встановлення лише певного браузера, слід вказати його в аргументі команди. Наприклад:
playwright install chromiumКроки тесту:
- відкрити сторінку демо додатку за посиланням: https://demo.playwright.dev/todomvc/#/
- додати один todo запис з текстом test
- перевірити, що доданий todo містить очікуваний текст
Створення автотесту
Попередньо створюю файл test_todo.py, котрий буде містити тест test_create_todo. Файли та тестові функції в Pytest відповідно до угоди повинні мати префікс test_.
Код тесту у файлі test_todo.py:
from playwright.sync_api import Page
def test_create_todo(page: Page):
page.goto('https://demo.playwright.dev/todomvc')
todo = 'test'
page.get_by_placeholder('What needs to be done?').fill(todo)
page.keyboard.press('Enter')
assert page.get_by_test_id('todo-title').inner_text() == todoПерелік дій тесту котрі виконує Playwright:
- page.goto – відкриває сторінку в браузері за вказаним посиланням
- page.get_by_placeholder – шукає поле вводу за текстом, що містить його placeholder

- fill – вводить вказаний текст у поле
- page.keyboard.press('Enter') – імітує натискання кнопки Enter клавіатури (це потрібно для підтвердження додавання нового todo)
- page.get_by_test_id – шукає елемент по атрибуту data-testid, за вказаним значенням

- inner_text – повертає внутрішній текст елемента
Запуск автотесту
Для запуску тесту, достатньо перебуваючи в директорії з файлом test_todo.py, виконати наступну команду в терміналі:
pytestЗа замовчуванням тести Playwright виконуються в безголовому режимі Chromium, тобто інтерфейс браузера не відкривається під час виконання тестів. Результати і логування тестів будуть відображені в терміналі:

Налаштуваннями запуску тестів можна керувати за допомогою параметрів CLI. Наприклад для запуску тестів в режимі headed (тобто з відкриттям інтерфейсу вікна браузера), слід додати до команди прапорець --headed:
pytest --headedОновлення Playwright
Для оновлення Playwright до останньої версії, слід виконати наступну команду в терміналі:
pip install pytest-playwright playwright -UПідсумок
В цьому записі було розглянуто базові кроки, для початку використання Playwright в поєднанні з Pytest. Також було створено і запущено простий автотест.
Посилання з додатковою інформацією:
- Playwright for Python
- Pytest documentation
- Pytest Python – початок роботи та прості приклади автотестів