|   | Ubuntu - Rodando Script com Selenium Grid | |
| @CanalQb | ||
Introdução à Automação Remota com Selenium Grid
Fala galera! Estou tentando rodar o Selenium para clicar o captcha em outro PC de forma remota, para executar uma automação em um servidor. O desafio é justamente conseguir essa configuração.
Durante minhas pesquisas, encontrei o Selenium Server, também conhecido como Selenium Grid. Tentei diversas abordagens sem sucesso até encontrar uma configuração inicial que funcionou. Agora vou compartilhar esse conhecimento com vocês.
Versões e Compatibilidade
No momento do vídeo, o Selenium Server está na versão selenium-server-4.9.0.jar, mas não obtive resultados satisfatórios com ele, pois utilizo WebDriver e Chrome na versão 113. É fundamental que tanto o servidor quanto o cliente estejam com as versões compatíveis.
Preparando o Script para o Servidor Linux
Supondo que seu ambiente esteja devidamente configurado, vamos criar o script em Python para o servidor (no meu caso, Linux). Veja o exemplo básico abaixo:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
capabilities = DesiredCapabilities.CHROME.copy()
grid_url = "http://192.168.0.11:4444/wd/hub"
driver = webdriver.Remote(command_executor=grid_url, desired_capabilities=capabilities)
# Navegar para uma página de exemplo
driver.get("https://bit.ly/3lOMxyx")
driver.save_screenshot("screenshot.png")
print(driver.title)
driver.quit()
Explicação do Script
- Linha 1: Importa o Selenium.
- Linha 2: Define as capacidades desejadas para o navegador Chrome.
- Linha 3: URL do Selenium Grid no IP do cliente (192.168.0.11).
- Linha 4: Inicializa o driver remoto apontando para o servidor Selenium Grid.
- Linha 5: Abre a página especificada.
- Linha 6: Captura uma screenshot da página e salva localmente.
- Linha 7: Exibe o título da página no console.
- Linha 8: Fecha o navegador.
Pré-requisitos
Você precisará:
- Instalar o Python com Selenium instalado (pode ser feito via pip install selenium).
- Ter o Java instalado para executar o Selenium Server. No momento, uso a versão 17 do Java SE, disponível no site oficial da Oracle: Oracle JDK 17.
- Baixar o arquivo JAR do Selenium Server. Para este tutorial, a versão 3.141.59 funcionou melhor (link oficial no GitHub: Selenium Server 3.141.59).
Importante: mantenha o chromedriver.exe na mesma versão do seu navegador Chrome para evitar incompatibilidades.
Configurando o Hub e o Node
Agora, criaremos dois arquivos para rodar simultaneamente no cliente Windows:
Arquivo hub.bat
java -jar Z:\python\selenium\selenium-server-standalone-3.141.59.jar -role hub
Arquivo chrome.bat
java -Dwebdriver.chrome.driver="c:\Windows\System32\chromedriver.exe" -jar Z:\python\selenium\selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.0.11:4444/grid/register/
Execute primeiro o hub.bat. Ele deve exibir uma tela semelhante a esta:
  
Depois, acesse no navegador o link do console do grid, alterando o IP para o seu cliente: http://192.168.0.11:4444/grid/console.
Você verá a tela do hub do Selenium Grid, que mostra as configurações e nós registrados. Clique em View Config para detalhes.
Com o hub.bat rodando, execute o chrome.bat. A página do console deve atualizar mostrando os nós registrados, com sessões para Internet Explorer, Chrome e Firefox (por padrão são várias sessões, mas você pode configurar para usar apenas uma).
  
Detalhes da Configuração do Servidor Ubuntu
No meu caso, o servidor é um Ubuntu 18.04 Server sem interface gráfica, com Python 3.8.16, Chrome e ChromeDriver na versão 113. Os IPs estão fixos via roteador para garantir estabilidade:
- Servidor: 192.168.0.2
- Cliente: 192.168.0.11
Você pode fazer o mesmo configurando IP fixo nas configurações de rede do seu roteador ou dispositivo.
Script Atualizado para Execução
Segue um script Python atualizado e comentado para facilitar a compreensão e uso:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Configurar as capacidades desejadas para o navegador
capabilities = DesiredCapabilities.CHROME.copy()
# Endereço do servidor do Selenium Grid
grid_url = "http://192.168.0.11:4444/wd/hub"
# Inicializar o driver remoto
driver = webdriver.Remote(
    command_executor=grid_url,
    desired_capabilities=capabilities
)
# Navegar para uma página de exemplo
driver.get("https://miningness.com/")
driver.save_screenshot("screenshot.png")
# Fazer algo com a página carregada...
# Por exemplo, imprimir o título da página
print(driver.title)
# Fechar o driver
driver.quit()
Considerações Finais
Este tutorial serve como ponto de partida para automações remotas usando Selenium Grid em ambientes heterogêneos (Windows cliente e Linux servidor). Lembre-se de manter as versões do navegador, WebDriver e Selenium Server alinhadas para evitar problemas.
Também recomendo fazer testes locais antes de migrar para servidores remotos, além de assegurar a segurança da rede onde as máquinas estão conectadas.
Responsabilidade: Sempre avalie cuidadosamente qualquer automação, especialmente em tarefas que envolvem interação com sistemas sensíveis, e evite investir recursos em processos que você não compreende completamente.
Para quem quiser mais detalhes, o site oficial do Selenium Grid é uma ótima fonte de informação.
Obrigado por acompanhar, e vou tentar trazer novidades para vocês em breve!
 

 
 
 
 
 
 
 
       
  
 
      ![[Feed Atom 1.0 válido]](https://www.feedvalidator.org/images/valid-atom.png) 
  ![[Validar feed de posts]](https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Generic_Feed-icon.svg/2048px-Generic_Feed-icon.svg.png) 
  
Comentários
Comente só assim vamos crescer juntos!