Во всех странах одинаковый результат
Проверьте ipinfo.io в каждом контексте показывает ожидаемую страну?
Решение Задайте каждому контексту свой proxy и проверьте, что IP куплен в нужной стране. Повторите прогон с одним выходом, чтобы найти ошибку.
Отдельный постоянный выход на каждую тестовую страну — гео-правило, перевод или ошибка RPC видны в тестах раньше, чем у пользователей.
dApp по-разному отвечает пользователям из разных стран. Polymarket, например, документирует запрос geoblock, который возвращает определённые IP, страну и регион, перечисляет юрисдикции с полной блокировкой и с режимом «только закрытие позиций» — в этом списке есть и Россия — и требует от разработчиков проверять местоположение до отправки ордера. Если в вашем dApp есть такие правила, результат для каждого региона виден только с IP этого региона.
Автотесты принимают прокси на браузер или на контекст. Playwright задаёт прокси для всего браузера или для каждого контекста, поэтому один прогон проходит несколько стран, а логин и пароль передаёт только HTTP(S)-прокси — создавайте IP с протоколом HTTP. Расширения вроде MetaMask загружаются только в Chromium с постоянным контекстом.
Постоянные выходы делают результаты сравнимыми. Статический IP дата-центра не меняется весь срок, и страна, где тест упал сегодня, завтра падает на том же адресе, а не на случайном. В консоли эта настройка для Web3 называется «Разработка и инструменты».
Используйте клавиши со стрелками для горизонтальной прокрутки.
| Критерий | Выбор | Почему |
|---|---|---|
| Продукт | Статический прокси дата-центра | Постоянные быстрые IP с оплатой за IP |
| Оплата | За IP и срок | Адрес не меняется до конца срока |
| Сколько IP | По одному на тестовую страну | У каждого региона свой постоянный выход |
| Страна | Каждый рынок, который вы обслуживаете или ограничиваете | Для Web3 страна не выбирается автоматически — по IP на страну |
| Протокол | HTTP (по умолчанию) | Логин и пароль Playwright передаёт только HTTP(S)-прокси |
| Смена IP | Нет, весь срок | Продлевайте в «Мои активы», чтобы прогоны оставались сравнимыми |
Кнопка «Настроить прокси для тестов dApp» открывает статические прокси дата-центра для сценария Web3: оплата за IP и срок, протокол HTTP. Выберите регион, срок и количество (до 100 IP за раз) до оплаты.
Используйте клавиши со стрелками для горизонтальной прокрутки.
| Критерий | Статический ISP | Ротационный резидентный | Дата-центр |
|---|---|---|---|
| Что вы получаете | Домашний IP, закреплённый за вами на весь срок | IP домашних сетей: липкая сессия в выбранной стране или ротация на бюджетной линии | Фиксированные IP в дата-центрах — самый быстрый и дешёвый вариант в консоли |
| Цена | За IP и срок, сумма в PTC видна до оплаты (1 PTC = US$1) | За ГБ: бюджетная US$1.50, премиум US$5.00, от 1 ГБ | За IP и срок, сумма в PTC видна до оплаты |
| Лучше всего для тестов dApp | Проверки, которые должны идти с домашнего адреса | Выборочные проверки во многих странах и городах с оплатой за ГБ | Автотесты в CI — по постоянному IP на страну |
Цены в долларах США, оплата балансом PTC (1 PTC = US$1). Пополните кошелёк и купите нужную линию. Автопродления пока нет — продлевайте статические IP в «Мои активы» до конца срока.
Кнопка «Настроить прокси для тестов dApp» открывает «Статические прокси дата-центра» со сценарием Web3. В «Настройках подключения» выберите регион и срок, оставьте протокол HTTP и нажмите «Проверить цену и создать». Одна покупка — один регион, поэтому повторите её для каждой страны из тестовой матрицы; несколько IP в одной стране задаются в поле «Количество» (до 100 за раз).
Ожидаемый результат В «Ваша конфигурация» указаны «За IP и срок», Web3, регион и протокол.
После оплаты консоль открывает «Мои активы». Нажмите «Показать данные» у нового прокси и скопируйте адрес подключения (хост:порт), логин и пароль.
Храните хост, порт, логин и пароль каждой страны в секретах CI, а не в репозитории. В Playwright передавайте их в параметре proxy браузера или каждого контекста, как в примере ниже.
Запустите один и тот же сценарий через каждый выход: сначала узнайте страну выхода, затем статус страницы, и сохраните скриншот для каждой страны.
Ожидаемый результат Каждый прогон выводит страну выхода, статус страницы и скриншот.
Используйте клавиши со стрелками для горизонтальной прокрутки.
// Save as geo-test.mjs and run: node geo-test.mjs
// npm i -D playwright && npx playwright install chromium
import { chromium } from 'playwright'
const DAPP_URL = 'https://app.example.org/' // your dApp
const exits = {
US: { server: 'http://US_HOST:PORT', username: 'USERNAME', password: 'PASSWORD' },
DE: { server: 'http://DE_HOST:PORT', username: 'USERNAME', password: 'PASSWORD' },
}
const browser = await chromium.launch()
for (const [expected, proxy] of Object.entries(exits)) {
const context = await browser.newContext({ proxy })
const page = await context.newPage()
await page.goto('https://ipinfo.io/country')
const seen = (await page.locator('body').innerText()).trim()
const response = await page.goto(DAPP_URL, { waitUntil: 'domcontentloaded' })
console.log(`${expected}: exit ${seen}, status ${response?.status()}`)
await page.screenshot({ path: `dapp-${expected}.png`, fullPage: true })
await context.close()
}
await browser.close()
Playwright задаёт прокси для каждого контекста, поэтому один запуск проходит по нескольким странам. Храните хосты и пароли в секретах CI, а DAPP_URL замените адресом своего dApp.
Проверьте ipinfo.io в каждом контексте показывает ожидаемую страну?
Решение Задайте каждому контексту свой proxy и проверьте, что IP куплен в нужной стране. Повторите прогон с одним выходом, чтобы найти ошибку.
Проверьте Логин и пароль заданы отдельными полями, совпадают с «Показать данные», а IP создан с протоколом HTTP?
Решение Передайте username и password рядом с server, как в примере, и скопируйте их заново в «Мои активы».
Проверьте Запускается Chromium с постоянным контекстом, а не Google Chrome или Edge?
Решение Используйте Chromium из комплекта Playwright и launchPersistentContext, а прокси передайте в тех же параметрах запуска.
Для автотестов — дата-центр: постоянный недорогой IP на страну. Ротационные резидентные — для выборочных проверок во многих странах и городах, статический ISP — когда нужен домашний адрес.
Да, в Chromium: Playwright загружает расширения только с постоянным контекстом, и прокси браузера покрывает трафик MetaMask. Используйте только тестовый кошелёк с тестовыми средствами.
Прогоните ограниченный сценарий через IP каждой ограниченной страны и одной разрешённой, затем сравните. Так устроено и у Polymarket: перед ордером запрос geoblock возвращает страну и регион.
Нет. Он меняет только то, откуда идут запросы, а не то, что возвращает узел. Если результаты зависят от страны, проверьте, не обращается ли dApp к разным RPC или API в разных регионах.
По одному на страну из тестовой матрицы. Параллельные прогоны в одной стране могут делить этот IP, если вы укладываетесь в лимиты dApp и RPC-провайдера.
Официальная документация · Проверено:
Описан запрос GET https://polymarket.com/api/geoblock: он возвращает признак блокировки, определённые IP, страну и регион; перечислены юрисдикции с полной блокировкой и с режимом «только закрытие позиций» (в интерфейсе и API или только в интерфейсе), в том числе Россия; разработчикам велено проверять местоположение до отправки ордеров.
Официальная документация · Проверено:
Прокси задаётся для всего браузера или для каждого контекста: поля server, username и password; поддерживаются HTTP(S) и SOCKSv5, а необязательные логин и пароль описаны только для HTTP(S)-прокси.
Официальная документация · Проверено:
Расширения работают только в Chromium, запущенном с постоянным контекстом; в Google Chrome и Microsoft Edge убраны флаги для загрузки расширений.
Наблюдение за продуктом · Проверено:
Проверено по исходному коду консоли 18.10.2026: для сценария Web3 страница статического дата-центра оплачивается за IP и срок, протокол HTTP или SOCKS5 (по умолчанию HTTP), регион заранее не выбран, «Автопродление IP» — «Пока недоступно», указано, что статический IP не меняется. Подсказка Web3: «Разработка и инструменты: За IP · HTTP CONNECT по умолчанию · 1 выход · протокол и срок на выбор». С 19.10.2026 поле «Количество» принимает от 1 до 100, а консоль оформляет и списывает каждый IP отдельно.
Наблюдение за продуктом · Проверено:
На странице цен: бюджетные ротационные резидентные — US$1.50 за ГБ, премиум — US$5.00 за ГБ, от 1 ГБ; баланс в PTC, 1 PTC = US$1.00; аренда статических ISP и дата-центр IP зависит от региона, количества и срока и показывается до оплаты (сверено с рабочим каталогом 09.10.2026).
Создайте аккаунт, пополните баланс и выберите выход: ротируемый резидентский, статический ISP или дата-центр. Ротируемые резидентные — в 195+ странах и регионах.