Шпаргалка по Playwright

Установка

pip install playwright
playwright install

Установка тестраннера

pip install pytest

Структура проекта

Важно создать упорядоченную и удобную структуру каталогов. Примерная структура проекта Playwright/Python:

project_name/
│
├── tests/
│   ├── __init__.py
│   ├── test_my_feature.py
│   └── test_another_feature.py

В каталоге tests/ — тестовые скрипты. Каждый скрипт в идеале тестирует одну функцию или пользовательский flow.

Инициализация Playwright и запуск браузера

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    # Здесь вставляешь свой код
    browser.close()

Навигация

# Переход по URL
page.goto('https://example.com')

# Перезагрузка страницы
page.reload()

# Вперед/назад по истории
page.goBack()
page.goForward()

Работа с элементами

# Кликнуть элемент
page.click('button')

# Ввести текст в поле ввода
page.type('input[name="username"]', 'your_username')

# Нажать клавишу Enter
page.press('input[name="password"]', 'Enter')

# Получить текстовое содержимое элемента
text = page.text_content('h1')

# Выбор опции в раскрывающемся списке
page.select_option('select', label='Option 1')

# Ожидание появления или видимости элементов
page.wait_for_selector('div#my-element', state='visible')

# Проверка, существует ли элемент
assert page.locator("button").is_visible()

# Проверка заголовка страницы
assert page.title() == "Expected Title"

Скриншоты и PDF

# Снять скриншот
page.screenshot(path='screenshot.png')

# Сгенерировать PDF
page.pdf(path='document.pdf')

Работа с cookies

# Получить все файлы cookie
cookies = page.cookies()

# Установить cookie
page.set_cookie(name='my_cookie', value='cookie_value')

# Удалить файл cookie
page.delete_cookie(name='my_cookie')

Алерты и диалоговые окна

# Обработка JS-алерта
page.on('dialog').accept()
page.on('dialog').dismiss()

Клавиатура и мышь

# Ввести текст
page.type('input', 'Hello, Playwright!')

# Нажать и отпустить клавишу
page.keyboard.press('Enter')
page.keyboard.release('Shift')

# Передвинуть мышь и кликнуть
page.mouse.move(100, 100)
page.mouse.click()

Выполнение (eval) Javascript-кода

# Выполнить JavaScript-код в контексте страницы
result = page.evaluate('1 + 2')

Фреймы

# Переход к фрейму по имени, id или индексу
page.frame(name='frameName')
page.frame(index=0)

# Выполнить код в контексте фрейма
frame = page.frame(index=0)
frame.evaluate('console.log("Hello from frame!")')

Источник


Вся автоматизация в одном канале

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас