Коротко: Передайте proxy с полями server, username и password в chromium.launch, а чтобы ограничить его одним контекстом, передайте его в browser.new_context. По HTTP все три движка проходят аутентификацию с этими полями. По SOCKS5 ни один из них не принимает логин и пароль: Playwright отказывается запускаться. Внесите свой IP в белый список прокси и укажите только сервер socks5://.
Playwright управляет Chromium, Firefox и WebKit через один API, а прокси входит в то, как создаётся браузер или контекст. Поэтому в одном скрипте легко работать с несколькими адресами, и поэтому же здесь находится его единственное жёсткое ограничение: SOCKS5 с паролем.
Прокси в Playwright на Python
Пример на Python запускает Chromium с прокси для всего браузера; пример для контекста вместо этого ограничивает прокси одним контекстом. Чтобы сменить движок, достаточно заменить chromium на firefox или webkit; объект прокси остаётся прежним.
Аутентификация прокси в Playwright
Когда прокси работает по HTTP, три движка отвечают на его 407 логином и паролем из объекта прокси. SOCKS5-прокси такого ответа не получает ни от одного из них, поэтому пример с SOCKS5 не содержит учётных данных и опирается на белый список.
Прокси в Playwright для страницы и bypass
Прокси нельзя привязать к отдельной странице. Единицей здесь служит контекст: создайте по контексту на каждый адрес и открывайте внутри него страницы, которые должны использовать этот адрес. Контексты в Playwright дешёвые, поэтому скрипт, который проверяет один магазин из трёх стран, держит три контекста, каждый из собственного заказа.
Объект прокси также принимает поле bypass, список хостов через запятую, к которым нужно обращаться напрямую. Используйте его для собственных внутренних сервисов или локального тестового сервера, чтобы через оплаченный адрес уходил только трафик, предназначенный для внешнего мира.