---
title: "Proxy com SeleniumBase: autenticação e rotação"
description: "O SeleniumBase aceita proxies com usuário e senha, algo que o Selenium sozinho não faz. Configuração, teste e uma rotação simples."
url: https://proxynet.io/pt-br/blog/how-to-use-proxy-with-seleniumbase
date: 2025-02-13
author: "Acar Diveroli"
category: "Integração, Tutoriais, Proxy 101"
lang: pt-BR
---

# Proxy com SeleniumBase: autenticação e rotação

O SeleniumBase é um framework de testes construído em cima do Selenium e aceita proxies **com credenciais**. É exatamente o que o Selenium sozinho não consegue, e por isso o desvio compensa em qualquer trabalho de scraping.

## O problema dos proxies no Selenium

O Selenium consegue definir um proxy, mas não se autenticar nele: o Chrome ignora usuário e senha no argumento `--proxy-server` e abre no lugar uma janela de login que o WebDriver não consegue preencher. A ferramenta que antes cobria essa lacuna, o SeleniumWire, está sem manutenção há bastante tempo e não é mais recomendada.

## Primeiros passos

### Instalação

```bash
pip install seleniumbase
```

### Um caso de teste

O teste abaixo pede a informação em JSON do IPinfo e escreve o resultado no console: assim você vê na hora qual endereço aparece para fora.

```python
from seleniumbase import BaseCase
from selenium.webdriver.common.by import By
import json

class ProxyTest(BaseCase):
    def test_proxy(self):
        # Abrir a página
        self.driver.get("https://ipinfo.io/json")

        # Ler a resposta JSON
        location_info = json.loads(self.driver.find_element(By.TAG_NAME, "body").text)

        # Imprimir o conteúdo
        for k, v in location_info.items():
            print(f"{k}: {v}")
```

## Executar o teste

A execução é feita com o pytest.

### Sem proxy

```bash
pytest proxy_test.py -s
```

No console aparecem o seu próprio IP e a sua localização.

### Com proxy

```bash
pytest proxy_test.py --proxy=USUARIO:SENHA@pr.proxynet.io:8000 -s
```

Usuário, senha, nome de host e porta estão no seu painel da Proxynet. A saída fica parecida com esta:

```
=================================== test session starts ===================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
plugins: seleniumbase-4.34.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item

proxy_test.py ip: 144.202.4.246
hostname: 144-202-4-246.pxnet.io
city: Piscataway
region: New Jersey
country: US
timezone: America/New_York
.

==================================== 1 passed in 3.25s ====================================
```

O endereço mudou e nenhuma janela de login apareceu — é esse o objetivo todo.

### Rotacionar proxies

Com o que o Python já traz você monta uma rotação simples. O script a seguir roda o mesmo teste uma vez por país:

```python
import subprocess

USER = "USUARIO"
PASSWORD = "SENHA"

# Países de onde a requisição deve sair
countries = ["us", "br", "gb", "tr"]

for country in countries:
    # Na Proxynet o país de destino vai dentro do nome de usuário
    proxy = f"{USER}-country-{country}:{PASSWORD}@pr.proxynet.io:8000"
    subprocess.run(f"pytest proxy_test.py --proxy={proxy} -s", shell=True)
```

A forma exata de indicar o país está no seu painel e muda conforme o produto. Como resolver a mesma coisa dentro de um script, em vez de pela linha de comando, explicamos em [Como rotacionar proxies em Python](/pt-br/blog/how-to-rotate-proxies-in-python).

## Conclusão

Com o SeleniumBase, um teste do Selenium sai por um proxy com autenticação, confere a localização visível e a troca entre execuções: três coisas que, só com o Selenium, dão bem mais trabalho.

Quais dos nossos [produtos de proxy](/pt-br/proxy) servem para isso:

- [Proxies residenciais](https://proxynet.io/pt-br/residential-proxy)
- [Proxies ISP](https://proxynet.io/pt-br/static-isp-residential-proxy)
- [Proxies móveis](https://proxynet.io/pt-br/mobile-proxy)
- [Proxies de datacenter](https://proxynet.io/pt-br/datacenter-proxy)
