В процессе тестирования веб-приложений с использованием Playwright часто возникает задача работы с изображениями. Это могут быть скриншоты, захваченные в процессе выполнения тестов, или изображения, загружаемые на страницы в ходе тестирования. Качество изображений и их формат играют важную роль при верификации визуальных аспектов приложения. В Playwright предусмотрены гибкие способы настройки качества и формата изображений для различных сценариев тестирования.
Playwright предоставляет несколько возможностей для захвата изображений и их последующей обработки. Основная цель работы с изображениями — это создание скриншотов или захват изображений, которые могут быть использованы для анализа внешнего вида страницы или конкретных элементов. Качество этих изображений и их формат определяются различными параметрами, которые могут быть настроены в процессе тестирования.
page.screenshot()Метод page.screenshot() используется для захвата
скриншотов страницы или отдельных элементов. В Playwright можно
настроить различные параметры, такие как качество, формат, и область
захвата изображения.
Пример захвата скриншота:
await page.screenshot({ path: 'screenshot.png' });
Этот код захватывает скриншот текущей страницы и сохраняет его в файл
screenshot.png.
В Playwright доступны несколько опций для настройки качества и формата изображений при их захвате. Рассмотрим основные из них:
path: Указывает путь для сохранения
изображения. Если параметр не задан, изображение возвращается в виде
Buffer.type: Позволяет задать формат
изображения. По умолчанию Playwright использует формат PNG, но можно
указать и другие форматы, такие как jpeg.quality: Используется только в случае
формата jpeg для установки качества изображения. Значение
этого параметра — от 0 до 100, где 100 — это наивысшее качество и
наибольший размер файла.fullPage: Принимает булево значение.
Если установлено в true, делает скриншот всей страницы,
включая область, которая находится вне видимой области экрана.clip: Определяет прямоугольную область
для захвата изображения. Задается объектом с полями x,
y, width, height.omitBackground: Если установить в
true, фон страницы будет прозрачным, а не белым, что может
быть полезно при работе с элементами с прозрачными фонами.Пример с настройками качества и формата изображения:
await page.screenshot({
path: 'screenshot.jpg',
type: 'jpeg',
quality: 80, // Устанавливаем качество для формата JPEG
fullPage: true // Делаем скриншот всей страницы
});
type: Формат изображения, который
можно установить. Возможные значения:
png: стандартный формат для скриншотов, с хорошим
качеством и без потерь.jpeg: формат с потерями, позволяет сжимать изображения
для уменьшения размера файла.quality: Этот параметр влияет
только на изображения в формате jpeg. Он определяет степень
сжатия изображения:
fullPage: Опция для захвата всего
содержимого страницы, включая те части, которые находятся вне области
видимости на экране. Это может быть полезно при тестировании страниц с
длинным контентом или динамическими элементами.
clip: Позволяет захватить только
часть страницы. Указав прямоугольную область с помощью параметра
clip, можно сделать скриншот лишь определённого элемента
или области страницы.
omitBackground: Когда эта опция
установлена в true, фон страницы становится прозрачным. Это
может быть полезно, например, при тестировании интерфейсов с прозрачными
элементами или когда нужно избежать наложения белого фона на элементы с
прозрачным фоном.
await page.screenshot({
path: 'screenshot.jpeg',
type: 'jpeg',
quality: 90
});
Этот код захватывает скриншот страницы в формате JPEG с качеством 90. Такой подход позволяет сбалансировать размер изображения и его качество.
await page.screenshot({
path: 'element-screenshot.png',
clip: {
x: 100,
y: 100,
width: 500,
height: 500
}
});
Здесь делается скриншот только части страницы, начиная с координат (100, 100) и с размерами 500x500 пикселей.
await page.screenshot({
path: 'fullpage-transparent.png',
fullPage: true,
omitBackground: true
});
Этот пример захватывает весь экран с прозрачным фоном. Полезно, если нужно работать с элементами на странице, которые имеют прозрачные фоны.
Для визуальных тестов важно, чтобы изображения были захвачены с максимальным качеством. Например, в случае тестирования дизайна страницы важно убедиться, что элементы UI, такие как кнопки, иконки и изображения, отображаются корректно. В таком случае использование высококачественных скриншотов в формате PNG будет оптимальным выбором. Однако если основная задача заключается в проверке функциональности или производительности, можно использовать формат JPEG с оптимизированным качеством для уменьшения размера файлов и ускорения работы.
PNG:
JPEG:
Настройка качества и формата изображений в Playwright является важным инструментом для тестирования визуальных аспектов веб-приложений. В зависимости от требований к качеству и размеру файла можно выбрать соответствующие параметры для захвата изображений. Важно использовать правильные форматы и настройки, чтобы добиться оптимального баланса между качеством и производительностью.