Playwright – инструмент автоматизации браузера, который позволяет программно открывать веб-страницы, взаимодействовать с элементами интерфейса и сохранять скриншоты. Его можно использовать на VPS с Linux без графической оболочки, где браузер Chromium будет работать в режиме headless, то есть без отображения окна.
В статье разберём, как установить Playwright на виртуальный выделенный сервер под управлением Ubuntu или Debian.
Как установить Playwright на Ubuntu и Debian
Для работы Playwright в связке с JavaScript используются Node.js и npm. Node.js – среда выполнения, которая позволяет запускать JS-скрипты на сервере. Менеджер пакетов npm, в свою очередь, потребуется для инсталляции Playwright и других необходимых библиотек. Сам Playwright предоставляет интерфейс для программного управления браузером, например, открытия веб-страниц, нажатия кнопок, заполнения форм и создания скриншотов. Непосредственно страницы открывает браузер, например Chromium, которым Playwright управляет при помощи команд.
Способы установки Node.js и npm на Ubuntu и Debian описаны в посвящённой данному вопросу статье нашего справочника.
Установка Playwright
Создайте отдельный каталог для проекта:
$ mkdir -p ~/playwright-test
Перейдите в созданный каталог:
$ cd ~/playwright-test
Далее выполните команду, которая создаст файл package.json – манифест проекта Node.js:
$ npm init -y
В созданном файле будут храниться сведения о проекте, зависимости и настройки запуска. Параметр -y в команде позволяет принять значения по умолчанию без дополнительных вопросов.
На следующем шаге установите Playwright при помощи npm:
$ npm install playwright
Для выполнения браузерных сценариев потребуется Chromium – браузер, которым будет управлять Playwright. Чтобы проинсталлировать Chromium, выполните команду:
$ npx playwright install --with-deps chromium
В данном случае параметр --with-deps позволяет установить системные зависимости браузера с помощью пакетного менеджера операционной системы.
Проверка установки Playwright
Создайте файл test.js для теста установки Playwright:
$ nano test.js
В качестве примера в файл добавьте следующий код:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({
headless: true
});
try {
const page = await browser.newPage();
await page.goto('https://ruvds.com');
console.log('Заголовок страницы:', await page.title());
await page.screenshot({
path: 'screenshot.png'
});
console.log('Скриншот сохранён');
} finally {
await browser.close();
}
})();
Закройте файл, сохранив изменения, и запустите созданный скрипт:
$ node test.js
В результате Playwright запустит Chromium без графического интерфейса, откроет сайт https://ruvds.com, выведет заголовок страницы в терминал и сохранит скриншот сайта в файл screenshot.png.

Непосредственно на виртуальном сервере нет возможности открыть созданный файл скриншота из-за отсутствия в системе графической оболочки. Чтобы убедиться в том, что файл screenshot.png на самом деле содержит скриншот анализируемого сайта, на локальном компьютере выполните команду scp:
scp your-user@X.X.X.X:~/playwright-test/screenshot.png C:\TEMP
Здесь:
your-user– имя пользователя для подключения к удалённой Linux-системе;X.X.X.X– замените на IP-адрес вашей виртуальной машины;C:\TEMP– папка на локальном компьютере, в которую будет сохранён файл скриншота.
Также для загрузки файла с VPS можно использовать утилиту WinSCP, обладающую графическим интерфейсом.
В приведённом примере файл screenshot.png должен содержать скриншот стартовой страницы сайта RUVDS.

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