Como usar o Selenium com múltiplas portas no ChromeDriver
Ao trabalhar com automação em Python utilizando o Selenium, pode surgir a necessidade de executar múltiplas instâncias simultâneas do ChromeDriver. Para isso, é essencial configurar portas distintas para evitar conflitos entre os scripts.
Este guia apresenta um exemplo prático de como definir portas diferentes para cada script utilizando o Selenium com o ChromeDriver.
Exemplo prático: executando múltiplos scripts com portas distintas
A seguir, veja como configurar dois scripts com portas separadas:
Script 1 - utilizando a porta 9515
from selenium import webdriver
# Inicializa o ChromeDriver com a porta 9515
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=chrome_options, port=9515)
# Aqui você pode executar o seu script utilizando o driver
# Encerra o ChromeDriver
driver.quit()
Script 2 - utilizando a porta 9516
from selenium import webdriver
# Inicializa uma nova instância do ChromeDriver com a porta 9516
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=chrome_options, port=9516)
# Aqui você pode executar o seu script utilizando o driver
# Encerra o ChromeDriver
driver.quit()
Usar portas distintas para cada instância do ChromeDriver evita falhas e conflitos entre os processos de automação.
Quais portas utilizar?
As portas comumente utilizadas com o ChromeDriver incluem:
- 80
- 8080
- 8000
- 9515
- 9516
Essas portas geralmente são aceitas pela maioria dos sistemas operacionais e não conflitam com outros serviços, mas é importante verificar quais estão disponíveis em seu sistema.
Como verificar portas disponíveis no Linux
Você pode verificar quais portas estão em uso com o seguinte comando no terminal:
sudo lsof -i -P -n | grep LISTEN
Esse comando mostra todas as conexões de rede em execução e as respectivas portas.
Ambientes corporativos e redes restritas
Se estiver operando em um ambiente com políticas de rede restritivas, algumas portas podem estar bloqueadas. Nesses casos, recomenda-se consultar o administrador de rede para saber quais portas estão liberadas.
Dicas para gerenciar múltiplas instâncias do ChromeDriver
Se você precisa executar dezenas de scripts simultaneamente, é fundamental organizar bem a alocação de portas. Veja algumas estratégias:
- Escolha um intervalo de portas: Dedique um intervalo como 9515 a 9535 exclusivamente para o ChromeDriver.
- Use um gerenciador de portas: Ferramentas como TCPView (Windows) ou Port Manager ajudam a visualizar e controlar as portas em uso.
- Implemente um script localizador de portas: Automatize a escolha da próxima porta livre para cada nova instância.
Exemplo de script que encontra uma porta livre
import socket
def encontrar_porta_livre(inicio=9515, fim=9535):
for porta in range(inicio, fim):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
if s.connect_ex(('localhost', porta)) != 0:
return porta
return None
porta_disponivel = encontrar_porta_livre()
print(f"Porta disponível encontrada: {porta_disponivel}")
Conclusão
Executar várias instâncias do ChromeDriver com o Selenium requer uma boa gestão de portas. Seja utilizando faixas pré-definidas, ferramentas externas ou scripts inteligentes, o importante é garantir que cada instância opere em uma porta exclusiva para evitar conflitos.
Importante: Este conteúdo tem fins educacionais. Sempre analise tecnicamente e verifique as configurações do seu ambiente antes de executar scripts automatizados.
Recomendações adicionais
- Use ambientes virtuais (como
venv) para isolar suas dependências Python. - Prefira versões atualizadas do Selenium e ChromeDriver para melhor compatibilidade.
- Considere o uso de ferramentas como Docker para isolar ambientes de execução.
Imagem de referência:

Confira também o conteúdo completo em vídeo no canal oficial:

Comentários
Comente só assim vamos crescer juntos!