Playwright робить налаштування проксі доволі простим, але лише тоді, коли ви вже знаєте, куди саме його підключати. Якщо ви тестуєте з однієї країни або перевіряєте сторінку з геоблокуванням, трафік браузера можна спрямувати через проксі замість локальної мережі. Це змінює IP-адресу, яку бачить сайт. А ще змінює рівень ризику. Якщо вам потрібен Playwright проксі приклад, далі в статті є практичні кроки.
Проксі в Playwright стоїть між браузером і сайтом. Браузер надсилає запити до проксі, а проксі пересилає їх далі. Сайт бачить IP-адресу проксі, а не вашу. Це важливо для перевірок регіону, лімітів запитів і сценаріїв, які мають поводитися по-різному залежно від локації. Якщо вам потрібен ширший контекст про суміжні інструменти, сторінка посібників із VPN, проксі та приватності пояснює базові речі без зайвої складності.
1. Що робить проксі в Playwright
Playwright може спрямовувати трафік браузера через проксі під час запуску або на рівні браузерного контексту. Це означає, що відвідування сторінок, XHR-запити й більшість браузерного трафіку можуть виходити з адреси проксі, а не з машини, де запускається тест. Для базової перевірки геолокації цього зазвичай достатньо. Для складнішої автоматизації це може бути різницею між чистим запуском і блокуванням.
Уявіть проксі як ворота з адресою. Браузер і далі поводиться як браузер, а Playwright ним керує, але сайт дивиться саме на ці ворота. Саме тому команди використовують проксі для тестування цін, що залежать від регіону, мови контенту, логін-потоків або сторінок відповідності вимогам у певній країні. Сайт може показувати різні варіанти доставки для Лондона і Лісабона. Проксі дає змогу це перевірити без поїздок. Для тих, хто шукає проксі для Playwright, цей підхід зазвичай є найпростішим стартом.
Є й другий сценарій, який часто недооцінюють: ротація IP. Скрипт, який постійно звертається до одного й того самого ресурсу з однієї адреси, може швидко нарватися на обмеження. Проксі не гарантує успіху, але дає змогу змінювати вихідний маршрут. Якщо вам потрібен схожий вступ до поведінки запитів, перегляньте посібник як приховати IP-адресу.
2. Варіанти проксі, які можна використовувати
Playwright підтримує об’єкт proxy із URL сервера та необов’язковими обліковими даними. Типові поля прості: адреса проксі-сервера, ім’я користувача і пароль. Деякі налаштування також використовують конфігурацію проксі на рівні browser context, що корисно, коли проксі потрібен лише для одного ізольованого контексту, а не для всієї сесії браузера. Ця деталь має значення, якщо одному тесту потрібен проксі, а іншому — ні.
Формат адреси проксі зазвичай містить протокол, хост і порт. Типове значення може виглядати так: http://proxy.example.com:8000. Якщо проксі вимагає авторизацію, Playwright може передати ім’я користувача і пароль у тому самому об’єкті. Протокол має відповідати типу проксі. SOCKS5-ендпойнт — це не те саме, що HTTP-проксі, і неправильний протокол призводить до помилок, яких можна уникнути. Якщо вам потрібно порівняти ці формати, стаття SOCKS5-проксі проти HTTP-проксі допоможе розібратися з типами.
Playwright також дає змогу задавати проксі більш точково. Це корисно для тестових наборів, де один браузерний контекст перевіряє регіональну вітрину, а інший — публічну головну сторінку. Один браузер, два контексти, один проксі лише там, де він потрібен. Чистіше. Менше сюрпризів.
Перш ніж писати код, корисно розуміти терміни, пов’язані з портами, автентифікацією та протоколами. Глосарій VPN і проксі стане у пригоді, коли провайдер використовує слова на кшталт endpoint, tunnel або upstream server так, ніби все очевидно — хоча це не завжди так.
3. Крок 1: Встановіть і ініціалізуйте Playwright
Почніть із проєкту, в якому вже запускається базовий скрипт Playwright. У Node.js це зазвичай означає створення папки, ініціалізацію package.json і встановлення Playwright. Один із поширених шляхів — команда npm install, а потім невеликий тестовий файл, який запускає браузер і відкриває сторінку. Перший скрипт залиште простим. Поки що не додавайте налаштування проксі.
Мінімальний стартовий варіант у загальному вигляді такий: встановити Playwright, запустити Chromium, відкрити одну сторінку, а потім закрити браузер. Це дає вам надійну базову точку. Якщо браузер відкриває сторінку без проксі, ви знаєте, що середовище працює, перш ніж щось змінювати. Це економить час пізніше, бо зламаний проксі й зламане встановлення Playwright можуть виглядати підозріло схоже.
Запустіть скрипт один раз. Потім — ще раз. Додавання проксі занадто рано може приховати прості проблеми проєкту, особливо якщо сторінка не завантажується, а браузер не стартує коректно. Я бачив, як команди годину шукали помилку проксі, хоча справжня проблема була в залежності, якої не вистачало після початкового встановлення.
4. Крок 2: Додайте конфігурацію проксі до запуску браузера
Ось тут налаштування проксі в Playwright стає практичним. Об’єкт proxy належить до параметрів запуску браузера для тієї сесії, на яку ви хочете вплинути. У типовому JavaScript-проєкті це означає передати поле proxy у launch() разом з іншими параметрами браузера. Спочатку там указується адреса сервера. Якщо потрібно, туди ж додаються облікові дані.
Простого прикладу структури достатньо, щоб показати форму:
Параметри запуску можуть містити об’єкт proxy з полями server, username і password. server вказує на хост і порт проксі. username і password додаються лише тоді, коли проксі цього вимагає. Якщо проксі відкритий і без авторизації, ці поля не потрібні.
Розміщуйте об’єкт proxy на тому самому рівні, що й інші параметри запуску, а не всередині page.goto чи іншого пізнішого виклику навігації. Це важливо, тому що Playwright визначає вихідний маршрут браузера під час запуску браузера або контексту. Якщо поставити проксі не туди, нічого не зміниться. Тихий збій — теж збій.
Ось схема простими словами: створіть браузер із параметрами launch, додайте туди proxy, а потім відкривайте контекст і сторінку як зазвичай. Для одноразової автоматизації цього часто достатньо. Для більших тестових наборів вирішіть, чи має проксі застосовуватися до всього запуску браузера, чи лише до одного контексту. Одне налаштування може впливати на десятки тестів, тож дійте свідомо.
5. Крок 3: Обробка проксі з авторизацією
Проксі з авторизацією запитують ім’я користувача й пароль. Playwright підтримує це напряму в об’єкті proxy, що зручно, але зручність не повинна перетворюватися на звичку жорстко прописувати секрети в тестових файлах. Зберігайте облікові дані в змінних середовища або в secrets manager. Звичайний текст у закоміченому скрипті — це саме той тип помилки, який роками живе в git-історії.
Якщо провайдер проксі дає вам ім’я користувача, яке містить zone, customer ID або session token, копіюйте його точно. Одна пропущена літера чи символ може спричинити помилки 407 proxy authentication, і ці помилки легко неправильно витлумачити, якщо паралельно є проблеми з авторизацією на самому сайті. Один провайдер може вимагати user:pass. Інший — довший ідентифікатор зі спеціальними символами. Орієнтуйтеся на формат провайдера, а не на припущення.
Деякі команди ротаційно змінюють облікові дані для кожного запуску. Це працює, але потребує дисципліни. Код запуску браузера має зчитувати поточний секрет із середовища під час виконання, а потім видаляти його, коли процес завершується. Ніколи не залишайте пароль проксі в тестовому фікстурі, якщо не любите ручну чистку. А робота це нудна.
Якщо ваш провайдер проксі підтримує автентифікований доступ SOCKS5, деталі налаштування можуть відрізнятися від HTTP-автентифікації, тож перегляньте посібник про автентифікований SOCKS5-проксі, перш ніж припускати, що ті самі поля працюють однаково. Часто це не так.
6. Крок 4: Перевірте, чи проксі працює
Не довіряйте лише конфігурації. Перевірте проксі в реальній браузерній сесії. Найпростіший спосіб — відкрити сторінку перевірки IP і порівняти показану адресу зі звичайною IP вашої машини. Якщо сайт показує адресу проксі, трафік браузера йде потрібним маршрутом. Якщо показує вашу локальну адресу — проксі не активний.
Друга перевірка — поведінка запитів. Подивіться, чи сайт віддає контент із очікуваної країни, мовою або через потрібну CDN-крайову точку. Сторінка з цінами лише для США не повинна раптово стати сторінкою для Великої Британії, якщо не змінювалася локація проксі. Така невідповідність скаже вам більше, ніж будь-яка абстрактна зелена галочка.
Також можна перевірити журнали браузера або мережеву поведінку в контрольному тесті. Достатньо одного запиту до відомого ендпойнта. Наприклад, якщо проксі блокує порт або протокол неправильний, запит може завершитися помилкою ще до завантаження контенту сторінки. Ця помилка корисна: вона показує, що браузер взагалі намагається використовувати проксі.
Для точнішої процедури перевірки посібник як перевірити, чи IP приховано показує практичні способи підтвердити зміну адреси, а не здогадуватися лише за поведінкою браузера.
7. Поширені проблеми та способи їх виправити
Першими люди бачать помилки з’єднання. Хост проксі може не працювати, порт може бути закритий, або протокол може бути неправильний. Якщо HTTP-проксі вказати як SOCKS5, браузер може відмовитися підключатися або зависнути під час старту. Спершу перевіряйте схему, бо ця помилка трапляється часто і її легко виправити.
Далі йдуть помилки автентифікації. Відповідь 407 зазвичай означає, що проксі очікував облікові дані, але не отримав їх, або ж вони були неправильними. Перевірте ім’я користувача, пароль і будь-яке спеціальне форматування, яке вимагає провайдер. Деякі проксі хочуть довгий рядок сесії; інші — простий логін. Один пропущений роздільник може зупинити весь запуск.
Непідтримувані формати проксі теж викликають плутанину. Playwright очікує дані проксі в певній структурі. Якщо провайдер дає URL із додатковими параметрами, скоротіть його до хоста, порту та потрібних полів авторизації, перш ніж передавати далі. Дивно оформлені ендпойнти часто трапляються в панелях провайдерів, і не кожен рядок варто вставляти в код без змін.
Невідповідність протоколів — ще одна проблема, що проявляється повільно. Сайт може завантажуватися через HTTP-проксі, а WebSocket-запит — ні, або навпаки, залежно від ресурсу та провайдера. Якщо робочому процесу потрібен суворіший контроль над поведінкою проксі, поверніться до посібника з найкращих практик автентифікації проксі і перевірте рекомендований провайдером формат, перш ніж знову змінювати скрипт.
Ще одна проблема виникає, коли проксі працює, але сайт усе одно блокує. Зазвичай це означає, що проблема вже не в транспорті, а у fingerprinting, лімітах запитів або поведінці тесту. Проксі свою роботу виконав. А от патерн запитів — ні.
8. Найкращі практики для стабільної роботи з проксі
Тримайте налаштування проксі ізольованими для кожного запуску тесту. Якщо одному набору потрібен проксі, а іншому — ні, не діліть між ними один і той самий стан браузера випадково. Чистий browser context для кожного запуску полегшує пошук помилок, особливо коли ви порівнюєте результати для різних регіонів або ротуєте ендпойнти між завданнями. Один контекст — одна мета.
Уникайте жорстко прописаних секретів. Це правило варте повторення один раз, а не десять. Завантажуйте ім’я користувача і пароль проксі зі змінних середовища, CI secrets або системи vault. Якщо колега пізніше відкриє код, він має бачити форму налаштування проксі, а не реальний пароль. Так рев’ю простіше, а випадкові витоки менш імовірні.
Зіставляйте протокол і правила сесії проксі-провайдера ще до масштабування. Проксі, який добре працює для одного запиту, може зламатися на п’ятому, якщо провайдер обмежує одночасні з’єднання або очікує повторного використання сесії. Якщо ваш процес залежить від ротації ендпойнтів, посібник із ротації проксі для вебскрапінгу пояснює компроміси, які найважливіші в автоматизації, наближеній до продакшну.
Спершу протестуйте один браузер, одну сторінку і одну відому сторінку перевірки IP, а вже потім запускайте повний набір. Це звучить базово, бо так і є. Базові перевірки ловлять дорогі помилки. Якщо проксі-налаштування переживає один чистий запуск, ви можете розширювати його на більше контекстів, сторінок і тестових даних без здогадів, чи не саме проксі ламає запуск.
Тримайте код запуску браузера поруч із рішенням про проксі. Якщо розробнику доводиться шукати, у п’яти файлах де саме підключається проксі, налаштування почне «плисти». Прямий блок запуску з чітким об’єктом proxy легше переглядати, легше аудіювати й легше змінювати, коли провайдер оновлює формат ендпойнта.