К основному содержанию
правило официальный · GitHub

playwright-python — правило для GitHub Copilot: суть и установка

Задаёт стандарты генерации тестов на Playwright Python в Pytest. Помогает Copilot писать надёжные проверки через expect и ролевые локаторы без хардкодных пауз.

Установить в GitHub Copilot · Вручную: положить файлы Все способы и платформы ↓
.github/instructions/playwright-python.instructions.md
Открыть на GitHub

Что делает playwright-python

Правило инструктирует ассистента генерировать тесты по официальным стандартам Playwright для Python. При создании сценариев Copilot отдаёт приоритет доступным селекторам get_by_role, get_by_label и get_by_text вместо хрупких путей к элементам. Код организуется вокруг синхронного интерфейса from playwright.sync_api import Page, expect с фикстурой page: Page.

Вместо стандартного assert или явных пауз инструкция предписывает использовать проверки с автоповтором: to_have_text(), to_have_count() и to_have_url(). Тестовые файлы размещаются в каталоге tests/ с именами по шаблону test_<feature-or-page>.py для автоматического обнаружения через pytest.

Инструкция жёстко привязана к синхронному модулю playwright.sync_api. Если ваш проект написан под асинхронный async_api, сгенерированные тесты сразу сломаются.

Какие задачи решает

  • настроить автогенерацию тестов на Playwright Python в Pytest
  • избавиться от нестабильных селекторов через get_by_role
  • заменить стандартный assert на проверки с автоповтором expect
  • убрать жёсткие таймауты и лишние паузы из тестовых сценариев

Примеры запросов агенту

  • Напиши тест на Playwright для проверки ссылки Get Started на главной странице
  • Создай файл test_auth.py для проверки формы входа с ролевыми локаторами
  • Добавь в Pytest проверку заголовка страницы и URL с помощью expect

Как установить playwright-python

Вручную: положить файлы

.github/instructions/playwright-python.instructions.md

Поле applyTo задаёт, к каким файлам применять

По шагам, с командами для каждой платформы: AGENTS.md и CLAUDE.md: что это, кто читает и какой выбрать

Вопросы о playwright-python

Как установить playwright-python в GitHub Copilot?

Сохраните файл правила по пути .github/instructions/playwright-python.instructions.md в своём репозитории. GitHub Copilot автоматически подхватит инструкции при создании тестов.

Что делает правило playwright-python?

Оно задаёт структуру тестов для Pytest: требует импортировать Page и expect из playwright.sync_api, использовать ролевые локаторы и проверки expect вместо обычного assert.

Поддерживает ли правило асинхронный Playwright?

Инструкции прямо требуют импорта from playwright.sync_api import Page, expect. Правило рассчитано только на синхронный запуск тестов.

Исходный текст

playwright-python.instructions.md · MIT
---
description: 'Playwright Python AI test generation instructions based on official documentation.'
applyTo: '**'
---

# Playwright Python Test Generation Instructions

## Test Writing Guidelines

### Code Quality Standards
- **Locators**: Prioritize user-facing, role-based locators (get_by_role, get_by_label, get_by_text) for resilience and accessibility.
- **Assertions**: Use auto-retrying web-first assertions via the expect API (e.g., expect(page).to_have_title(...)). Avoid expect(locator).to_be_visible() unless specifically testing for a change in an element's visibility, as more specific assertions are generally more reliable.
- **Timeouts**: Rely on Playwright's built-in auto-waiting mechanisms. Avoid hard-coded waits or increased default timeouts.
- **Clarity**: Use descriptive test titles (e.g., def test_navigation_link_works():) that clearly state their intent. Add comments only to explain complex logic, not to describe simple actions like "click a button."

### Test Structure
- **Imports**: Every test file should begin with from playwright.sync_api import Page, expect.
- **Fixtures**: Use the page: Page fixture as an argument in your test functions to interact with the browser page.
- **Setup**: Place navigation steps like page.goto() at the beginning of each test function. For setup actions shared across multiple tests, use standard Pytest fixtures.

### File Organization
- **Location**: Store test files in a dedicated tests/ directory or follow the existing project structure.
- **Naming**: Test files must follow the test_<feature-or-page>.py naming convention to be discovered by Pytest.
- **Scope**: Aim for one test file per major application feature or page.

## Assertion Best Practices
- **Element Counts**: Use expect(locator).to_have_count() to assert the number of elements found by a locator.
- **Text Content**: Use expect(locator).to_have_text() for exact text matches and expect(locator).to_contain_text() for partial matches.
- **Navigation**: Use expect(page).to_have_url() to verify the page URL.
- **Assertion Style**: Prefer `expect` over `assert` for more reliable UI tests.


## Example

```python
import re
import pytest
from playwright.sync_api import Page, expect

@pytest.fixture(scope="function", autouse=True)
def before_each_after_each(page: Page):
    # Go to the starting url before each test.
    page.goto("https://playwright.dev/")

def test_main_navigation(page: Page):
    expect(page).to_have_url("https://playwright.dev/")

def test_has_title(page: Page):
    # Expect a title "to contain" a substring.
    expect(page).to_have_title(re.compile("Playwright"))

def test_get_started_link(page: Page):
    page.get_by_role("link", name="Get started").click()
    
    # Expects page to have a heading with the name of Installation.
    expect(page.get_by_role("heading", name="Installation")).to_be_visible()
```

## Test Execution Strategy

1. **Execution**: Tests are run from the terminal using the pytest command.
2. **Debug Failures**: Analyze test failures and identify root causes

© github · MIT · github/awesome-copilot

Похожие правила IDE

Все правила IDE по теме «Тесты и QA» →

Из того же набора861

Весь набор →
power-bi-custom-visuals-development Правило для GitHub Copilot, которое подсказывает агенту, как писать кастомные визуалы Power BI на React, D3.js и TypeScript. ★ 40 418звёзд репо power-apps-code-apps Задаёт стандарты стека React, TypeScript и Vite для Power Apps Code Apps. Направляет Copilot при работе с Power Platform SDK, вызовах коннекторов и встраивании Power BI. ★ 40 418звёзд репо power-apps-canvas-yaml Правило помогает Copilot работать с YAML-файлами Canvas Apps и формулами Power Fx. Пригодится при правке экранов, компонентов и источников данных приложения. ★ 40 418звёзд репо playwright-typescript Правило задаёт Copilot стиль написания тестов Playwright: ролевые локаторы, автоожидание, единая структура файлов. Пригодится, если тесты пишет агент, а не человек. ★ 40 418звёзд репо playwright-dotnet Правило задаёт структуру и практики для тестов Playwright на C#. Пригодится, когда Copilot пишет или дорабатывает UI-тесты. ★ 40 418звёзд репо php-symfony Правило задаёт Copilot стиль разработки на Symfony: структура проекта, DI, Doctrine, Twig и тесты. Пригодится, если не хочется объяснять агенту конвенции в каждом чате. ★ 40 418звёзд репо php-mcp-server Инструкция для GitHub Copilot по созданию серверов Model Context Protocol на PHP 8.2+. Помогает ассистенту размечать методы атрибутами и собирать проект через официальный SDK. ★ 40 418звёзд репо performance-optimization Правило помогает находить причины проблем с Core Web Vitals и выбирать исправления для веб-приложения. Пригодится при работе над загрузкой, рендерингом и сдвигами макета. ★ 40 418звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой