Когда ты работаешь с инструментом важно исследовать его внутренности и понимать как он работает
Давайте разберем playwright
Корневая директория📝
В корневой директории мы находим следующие папки:
🌸
playwright/🌸
browser_patches/🌸
docs/🌸
examples/🌸
packages/🌸
tests/🌸
utils/А также файл
package.json, который включает следующие ключи:{
"name": "playwright-internal",
"private": true,
"workspaces": ["packages/*"]
}Файл
package.json намекает, что основная функциональность находится внутри директории packages/, поскольку корневой файл помечен как private, имеет в названии "internal" и использует ключ "workspaces", который сообщает Node.js, что проект имеет несколько пакетов. Давайте быстро рассмотрим другие директории верхнего уровня перед тем, как углубиться в папку packages/👇✳️
browser_patches — эта папка содержит патчи для браузеров, добавляющие дополнительные элементы управления и функции к некоторым движкам браузеров, используемых в этом проекте. Интересно, что здесь есть патч для WebKit, позволяющий ему работать на Windows.✳️
docs — папка docs содержит файлы Markdown, которые компилируются в документацию, представленную на сайте Playwright.✳️
examples — здесь находятся примеры тестовых скриптов, к которым можно обратиться при начале работы с проектом Playwright.✳️
tests — даже библиотеки для тестирования должны иметь автоматизированные тесты, которые написаны с использованием Playwright.✳️
utils — директория utils содержит различные инструменты, используемые во время сборки, Docker-образы, функциональность для Azure, генератор файлов типов и многое другое.Директория packages✏️
Директория
packages содержит более 20 отдельных пакетов, что усложняет понимание. Мы разделим этот список на понятные категории.Пакеты для отчётности и генерации тестов
Playwright содержит множество различных пакетов для отчётности о тестах, каждый со своим набором функций. Кратко, список пакетов в этой категории:
✳️
html-reporter/✳️
recorder/✳️
trace-viewer/✳️
trace/✳️
web/Эти пакеты содержат код, связанный с обработкой отчётов о тестах или их генерацией с помощью пакета
recorder. Кроме того, есть trace и trace-viewer, которые могут записываться во время выполнения тестов Playwright. Пакет web/ предоставляет утилиты, общие для различных веб-инструментов, перечисленных здесь.Пакеты, специализированные для браузеров
Каждый из этих пакетов просто экспортирует пакет
playwright-core вместе со скриптом установки только для соответствующего браузера. Вы можете найти их на npmjs, например, playwright-chromium — это отдельный пакет, который имеет Playwright, специализированный только для автоматизации Chromium.✳️
playwright-chromium/✳️
playwright-firefox/✳️
playwright-webkit/Пакеты для установки браузеров
Эти пакеты включают только скрипты установки для каждого из браузеров. Например, playwright-browser-chromium соответствует пакету @playwright/browser-chromium на npmjs.
✳️
playwright-browser-chromium/✳️
playwright-browser-firefox/✳️
playwright-browser-webkit/Пакеты для тестирования компонентов
Эти пакеты связаны с экспериментальной системой тестирования компонентов в Playwright. Они предоставляют функциональность, аналогичную тому, как Jest может рендерить отдельные компоненты для разных библиотек.
✳️
playwright-ct-core/✳️
playwright-ct-react/✳️
playwright-ct-react17/✳️
playwright-ct-solid/✳️
playwright-ct-svelte/✳️
playwright-ct-vue/✳️
playwright-ct-vue2/