Spec-Zone.ru › Playwright

Отладка тестов

Отладчик VS Code​

Для лучшего опыта разработчика мы рекомендуем использовать расширение VS Code для отладки. С помощью расширения VS Code вы можете отлаживать свои тесты прямо в VS Code, просматривать сообщения об ошибках, устанавливать точки останова и выполнять пошаговую отладку ваших тестов.

running test in debug mode

Сообщения об ошибках​

Если тест завершается неудачно, VS Code отобразит сообщения об ошибках прямо в редакторе, показывая ожидаемые значения, полученные значения, а также полный журнал вызовов.

error messaging in vs code

Живая отладка​

Вы можете отлаживать свой тест в режиме реального времени в VS Code. После запуска теста с выбранным Show Browser параметром, щелкните любой из локаторов в VS Code, и он будет выделен в окне браузера. Playwright также покажет вам, если есть несколько совпадений.

live debugging in VS Code

Вы также можете изменить локаторы в VS Code, и Playwright отобразит изменения в окне браузера в реальном времени.

live debugging in VS Code

Выбор локатора​

Выберите локатор и скопируйте его в файл теста, нажав кнопку Выбрать локатор в боковой панели тестирования. Затем в браузере щелкните нужный элемент, и он отобразится в поле Выбрать локатор в VS Code. Нажмите Enter на клавиатуре, чтобы скопировать локатор в буфер обмена, а затем вставьте его в любой части кода. Или нажмите Escape, если хотите отменить.

Pick locators

Playwright проанализирует вашу страницу и определит лучший локатор, отдавая приоритет локаторам role, text и test id. Если Playwright найдёт несколько элементов, соответствующих локатору, он улучшит локатор, чтобы сделать его устойчивым и однозначно идентифицировать целевой элемент, так что вам не нужно беспокоиться о провальных тестах из-за локаторов.

Запуск в режиме отладки​

Чтобы установить точку останова, щелкните рядом с номером строки, где вы хотите установить точку останова, пока не появится красная точка. Запустите тесты в режиме отладки, нажав правой кнопкой мыши на строке рядом с тестом, который вы хотите запустить.

setting debug test mode

Откроется окно браузера, тест будет запущен и приостановлен в месте, где установлена точка останова. Вы можете выполнить пошаговую отладку тестов, приостановить тест и запустить тесты повторно из меню в VS Code.

running test in debug mode

Отладка в разных браузерах​

По умолчанию отладка выполняется с использованием профиля Chromium. Вы можете отлаживать свои тесты в разных браузерах, нажав правой кнопкой мыши на значок отладки в боковой панели тестирования и выбрав «Выбрать профиль по умолчанию» в выпадающем меню.

debugging on specific profile

Затем выберите профиль теста, который вы хотите использовать для отладки своих тестов. Каждый раз, когда вы запускаете свой тест в режиме отладки, он будет использовать выбранный профиль. Вы можете запускать тесты в режиме отладки, нажав правой кнопкой мыши на номере строки, где находится ваш тест, и выбрав «Отладить тест» в меню.

choosing a profile for debugging

Чтобы узнать больше об отладке, см. Отладка в Visual Studio Code.

Инспектор Playwright​

Инспектор Playwright — это инструмент графического интерфейса, который поможет вам отладить ваши тесты Playwright. Он позволяет выполнять пошаговую отладку ваших тестов, изменять локаторы в режиме реального времени, выбирать локаторы и просматривать журналы доступности действий.

Playwright Inspector

Запуск в режиме отладки​

Запустите свои тесты со флагом --debug, чтобы открыть инспектор. Это настраивает Playwright для отладки и открывает инспектор. Дополнительные полезные значения по умолчанию настраиваются при использовании --debug:

  • Браузеры запускаются в режиме с отображением
  • Значение таймаута по умолчанию установлено в 0 (= нет таймаута)

Отладить все тесты во всех браузерах​

Чтобы отладить все тесты, запустите команду теста со флагом --debug. Это запустит тесты по одному, откроет инспектор и окно браузера для каждого теста.

npx playwright test --debug

Отладить один тест во всех браузерах​

Чтобы отладить один тест на определённой строке, запустите команду теста, затем имя файла теста и номер строки теста, который вы хотите отладить, после чего добавьте флаг --debug. Это запустит один тест в каждом браузере, настроенном в вашей playwright.config, и откроет инспектор.

npx playwright test example.spec.ts:10 --debug

Отладить в определённом браузере​

В Playwright вы можете настроить проекты в playwright.config. После настройки вы можете отлаживать тесты в определённом браузере или мобильном представлении, используя флаг --project и имя настроенного проекта в playwright.config.

npx playwright test --project=chromium --debug
npx playwright test --project="Mobile Safari" --debug
npx playwright test --project="Microsoft Edge" --debug

Отладить один тест в определённом браузере​

Чтобы запустить один тест в определённом браузере, добавьте имя файла теста и номер строки теста, который вы хотите отладить, а также флаг --project и имя проекта.

npx playwright test example.spec.ts:10 --project=webkit --debug

Пошаговая отладка ваших тестов​

Вы можете воспроизводить, приостанавливать или выполнять пошаговую отладку каждого действия вашего теста, используя панель инструментов в верхней части инспектора. Вы можете видеть текущее действие, выделенное в коде теста, и соответствующие элементы, выделенные в окне браузера.

Playwright Inspector and browser

Запустить тест с определённой точки останова​

Чтобы ускорить процесс отладки, вы можете добавить метод page.pause() в свой тест. Таким образом, вам не придётся выполнять пошаговую отладку каждого действия вашего теста, чтобы добраться до нужной точки отладки.

await page.pause();

После добавления вызова page.pause(), запустите свои тесты в режиме отладки. Нажатие кнопки «Возобновить» в инспекторе запустит тест и остановится только на page.pause().

test with page.pause

Редактирование локаторов в реальном времени​

При работе в режиме отладки вы можете редактировать локаторы в реальном времени. Рядом с кнопкой «Выбрать локатор» есть поле, отображающее локатор, на котором приостановлен тест. Вы можете напрямую отредактировать этот локатор в поле Выбрать локатор, и соответствующие элементы будут выделены в окне браузера.

live editing locators

Выбор локаторов​

Во время отладки вам может потребоваться выбрать более устойчивый локатор. Вы можете сделать это, нажав кнопку Выбрать локатор и наводя курсор на любой элемент в окне браузера. При наведении на элемент вы увидите код, необходимый для определения этого элемента, выделенный ниже. Щелчок по элементу в браузере добавит локатор в поле, где вы можете его скорректировать или скопировать в код.

Picking locators

Playwright проанализирует вашу страницу и определит лучший локатор, отдавая приоритет локаторам role, text и test id. Если Playwright найдёт несколько элементов, соответствующих локатору, он улучшит локатор, чтобы сделать его устойчивым и однозначно идентифицировать целевой элемент, так что вам не нужно беспокоиться о провальных тестах из-за локаторов.

Журналы доступности действий​

Когда Playwright приостанавливает выполнение действия «щелчок», он уже выполнил проверки доступности действий, которые можно найти в журнале. Это может помочь вам понять, что произошло во время вашего теста, и что Playwright сделал или пытался сделать. Журнал сообщит вам, был ли элемент видимым, активным и стабильным, разрешился ли локатор до элемента, был ли он прокручен в область видимости, и многое другое. Если доступность действия не достигнута, оно будет отображено как ожидающее.

Actionability Logs

Просмотр трассировок​

Playwright Просмотр трассировок — это инструмент графического интерфейса, который позволяет исследовать записанные трассировки Playwright ваших тестов. Вы можете перемещаться вперёд и назад по каждому действию слева и визуально видеть, что происходило во время действия. Посередине экрана вы можете увидеть снимок DOM для действия. В правой части вы можете увидеть подробности действия, такие как время, параметры, возвращаемое значение и логирование. Вы также можете просмотреть сообщения консоли, сетевые запросы и исходный код.

Ваш браузер не поддерживает тег видео.

Чтобы узнать больше о записи трассировок и использовании просмотра трассировок, ознакомьтесь с руководством Просмотр трассировок.

Инструменты разработчика браузера​

При запуске в режиме отладки с PWDEBUG=console, объект playwright доступен в консоли инструментов разработчика. Инструменты разработчика могут помочь вам:

  • Проверьте дерево DOM и найдите **селекторы элементов**
  • **Просмотрите журналы консоли** во время выполнения (или узнайте, как прочитать журналы через API)
  • Проверьте **сетевую активность** и другие функции инструментов разработчика

Это также установит значения по умолчанию для таймаутов Playwright в 0 (= без таймаута).

Browser Developer Tools with Playwright object

Для отладки тестов с помощью инструментов разработчика браузера начните с установки точки останова в вашем тесте, чтобы приостановить выполнение, используя метод page.pause().

await page.pause();

После установки точки останова в вашем тесте вы можете запустить свой тест с помощью PWDEBUG=console.

  • Bash
  • PowerShell
  • Batch
PWDEBUG=console npx playwright test
$env:PWDEBUG="console"
npx playwright test
set PWDEBUG=console
npx playwright test

После запуска Playwright окна браузера вы можете открыть инструменты разработчика. Объект playwright будет доступен в панели консоли.

playwright.$(selector)​

Выполните запрос к селектору Playwright, используя фактический движок запросов Playwright, например:

playwright.$('.auth-form >> text=Log in');

<button>Log in</button>

playwright.$$(selector)​

То же, что и playwright.$, но возвращает все совпадающие элементы.

playwright.$$('li >> text=John')

[<li>, <li>, <li>, <li>]

playwright.inspect(selector)​

Показать элемент на панели «Элементы».

playwright.inspect('text=Log in')

playwright.locator(selector)​

Создайте локатор и выполните запрос к совпадающим элементам, например:

playwright.locator('.auth-form', { hasText: 'Log in' });

Locator ()
  - element: button
  - elements: [button]

playwright.selector(element)​

Генерирует селектор для данного элемента. Например, выберите элемент на панели «Элементы» и передайте $0:

playwright.selector($0)

"div[id="glow-ingress-block"] >> text=/.*Hello.*/"

Подробные журналы API​

Playwright поддерживает подробное ведение журналов с помощью переменной среды DEBUG.

  • Bash
  • PowerShell
  • Batch
DEBUG=pw:api npx playwright test
$env:DEBUG="pw:api"
npx playwright test
set DEBUG=pw:api
npx playwright test
примечание

Для WebKit: запуск WebKit Inspector во время выполнения предотвратит выполнение скрипта Playwright и сбросит предварительно настроенные пользовательский агент и эмуляцию устройства.

Режим с отображением браузера​

Playwright по умолчанию запускает браузеры в бессерверном режиме. Чтобы изменить это поведение, используйте headless: false в качестве параметра запуска.

Вы также можете использовать опцию slowMo, чтобы замедлить выполнение (на N миллисекунд за операцию) и следить за процессом во время отладки.

// Chromium, Firefox, or WebKit
await chromium.launch({ headless: false, slowMo: 100 });

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/debug

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API