Configurações do Ghost Driver no PC: Guia de Instalação e Configuração - Configurações

Configurações do Ghost Driver no PC: Guia de Instalação e Configuração

Aprenda a configurar o Ghost Driver no PC para Selenium e PhantomJS. Passo a passo de instalação, capacidades e dicas de otimização.

2026-08-12
Equipe da Wiki do Ghost Driver
Guia Rápido
  • Configurações do Ghost Driver no PC: Configure as vinculações do PhantomJS para automação com Selenium WebDriver
  • Arquitetura principal: O Ghost Driver é executado como uma implementação em JavaScript dentro do PhantomJS
  • Capacidade essencial: Defina phantomjs.binary.path para apontar para o seu executável local
  • Vantagem headless: Não requer servidor de exibição, ideal para pipelines de CI/CD
  • Opções personalizadas: Passe argumentos de linha de comando via phantomjs.cli.args para controle de SSL e renderização

Entendendo o Ghost Driver e as Configurações do PC

O Ghost Driver atua como a implementação do WebDriver integrada ao PhantomJS, permitindo a automação de navegadores headless por meio do protocola W3C WebDriver. Ao configurar as definições do Ghost Driver no seu PC, você está essencialmente criando uma ponte entre os seus testes de cliente do Selenium e o motor do navegador headless PhantomJS.

Destaques do Vídeo:

  • Explica a natureza dupla do Ghost Driver tanto como um script quanto como um módulo embutido
  • Cobre o diagrama de sequência do que acontece durante a inicialização do driver
  • Demonstra como passar capacidades personalizadas e argumentos de linha de comando
  • Detalha as diferenças entre PhantomJS e HTMLUnit para testes

Quando você inicializa uma nova instância do PhantomJSDriver na sua suíte de testes, o sistema cria um serviço de driver que gera um processo separado do PhantomJS. Esse processo executa o script do Ghost Driver, que então escuta em um endpoint local por comandos do WebDriver. Entender esse fluxo é crítico para otimizar suas configurações locais no PC.

Vinculação vs Driver

Não confunda o Ghost Driver com as vinculações (bindings) do PhantomJSDriver. O Ghost Driver é a implementação em JavaScript executada dentro do PhantomJS. O PhantomJSDriver refere-se às vinculações do cliente Selenium (as classes que você importa em seus scripts de teste) que se comunicam com o Ghost Driver via HTTP.

ComponenteTipoLinguagemFunção
Ghost DriverImplementação WebDriverJavaScriptExecutado dentro do PhantomJS, lida com o protocolo W3C
PhantomJSDriverVinculação de Cliente (Binding)Java/Python/Ruby/.NETClasses usadas em scripts de teste para iniciar o navegador
PhantomJSNavegador HeadlessC++Motor baseado em WebKit que executa a renderização da página
Selenium GridArquitetura Hub/NóVáriasDistribui instâncias de teste entre máquinas

Parâmetros Essenciais de Configuração do PC

Configurar as definições do Ghost Driver no PC exige a definição de Capacidades Desejadas (Desired Capabilities) específicas em seus testes do Selenium. Essas capacidades informam à vinculação onde o executável do PhantomJS está localizado e como iniciá-lo.

A configuração mais crítica é o phantomjs.binary.path. Sem esse parâmetro, seu script de teste não saberá onde encontrar o executável do PhantomJS na sua máquina. Além disso, você pode passar argumentos de linha de comando diretamente para o processo PhantomJS usando phantomjs.cli.args.

Caminho do Executável

Sempre verifique se o caminho fornecido em phantomjs.binary.path aponta para o arquivo executável real, não apenas para o diretório. Um caminho incorreto é a causa mais comum de falhas de inicialização.

Chave de CapacidadeFinalidadeValor de Exemplo
phantomjs.binary.pathAponta para o executável do PhantomJS/usr/local/bin/phantomjs
phantomjs.ghostdriver.pathAponta para um script Ghost Driver personalizado (para colaboradores)/path/to/ghostdriver/main.js
phantomjs.cli.argsMatriz (array) de argumentos CLI passados para o processo["--ignore-ssl-errors=true"]
phantomjs.page.settings.XSubstitui as propriedades do objeto da página (ex.: userAgent)Mozilla/5.0 (iPhone...)

Caminho do Binário (Binary Path)

  • Obrigatório para execução local
  • Deve apontar diretamente para o arquivo executável
  • Use caminhos absolutos para evitar erros de resolução

Argumentos CLI

  • Passados como uma matriz de strings
  • Suporta a ignorância de erros de SSL
  • Permite a configuração do depurador remoto

Configurações de Página

  • Substitui as propriedades padrão do navegador
  • Strings de User-Agent personalizadas
  • Aplicadas a cada nova sessão

Guia de Instalação Passo a Passo

Siga estas etapas para configurar as opções do Ghost Driver em sua máquina local. Este guia pressupõe que você já tenha um projeto básico do Selenium configurado em sua linguagem de programação preferida.

1

Baixar o PhantomJS

Baixe a compilação (build) apropriada do PhantomJS para o seu sistema operacional no site oficial. Descompacte o pacote e observe a localização do arquivo executável. Como alternativa, você pode compilar o PhantomJS a partir do código-fonte, embora esse processo possa levar mais de uma hora em máquinas rápidas, pois compila todo o motor WebKit.

2

Adicionar as Vinculações do Selenium

Adicione as vinculações do Selenium WebDriver ao seu projeto. Em Java, inclua as dependências selenium-java e selenium-server via Maven ou Gradle. Para Python, basta instalar o pacote selenium. As classes do PhantomJSDriver são agrupadas na biblioteca padrão do Selenium.

3

Configurar as Capacidades Desejadas (Desired Capabilities)

Crie um objeto DesiredCapabilities e defina a capacidade phantomjs.binary.path com o caminho absoluto do seu executável PhantomJS. Adicione quaisquer argumentos CLI necessários à matriz de capacidade phantomjs.cli.args.

4

Inicializar o Driver

Passe o objeto de capacidades configurado para uma nova instância PhantomJSDriver. O serviço de driver gerará automaticamente o processo PhantomJS, executará o Ghost Driver e estabelecerá uma sessão WebDriver.

5

Executar Testes em Modo Headless

Execute sua suíte de testes. O PhantomJS será executado completamente em modo headless sem abrir janelas do navegador, tornando-o ideal para ambientes de integração contínua e execução por linha de comando.

Verificação da Instalação

Após a inicialização, seu script de teste consultará o endpoint /status na porta local. Assim que receber uma resposta HTTP 200 OK, uma nova sessão será criada automaticamente. Você pode então usar comandos padrão do WebDriver, como driver.get(url), para navegar.

Configurações de SSL, Segurança e Grid

Ao executar testes automatizados em ambientes internos ou de homologação (staging), você frequentemente encontra certificados SSL autoassinados. As configurações do Ghost Driver no PC fornecem capacidades específicas para lidar com esses cenários de forma elegante.

Para ignorar erros de certificado SSL, passe o argumento --ignore-ssl-errors=true por meio da capacidade phantomjs.cli.args. Você também pode passar --web-security=false para desativar as verificações de política de mesma origem (same-origin) durante o teste.

Implicações de Segurança

Desative a verificação SSL e a segurança da web apenas em ambientes de teste. Nunca use essas configurações na produção ou ao lidar com dados sensíveis do usuário.

Argumento CLIEfeitoCaso de Uso
--ignore-ssl-errors=trueIgnora todos os erros de validação de certificadoServidores internos de homologação com certificados autoassinados
--web-security=falseDesativa as políticas de segurança de origem cruzada (cross-origin)Testar interações com iframes e comportamento CORS
--remote-debugger-port=9000Habilita a depuração remota via Web InspectorDepurar o código JavaScript do Ghost Driver
--webdriver=8080Define uma porta personalizada para o ouvinte do WebDriverExecutar várias instâncias simultaneamente

Para integração com o Selenium Grid, você pode registrar sua instância do PhantomJS em um hub passando o parâmetro --webdriver-selenium-grid-hub com a URL do hub. Isso permite que a grade distribua instâncias do PhantomJS por várias máquinas de teste.

Depuração Remota

Para depurar os componentes internos do Ghost Driver, inicie o PhantomJS com --remote-debugger-port=9000 e --remote-debugger-autorun=yes. Abra o Web Inspector do Chrome ou Safari e conecte-se à instância do PhantomJS para percorrer o código JavaScript.

Personalização Avançada e Limitações

As configurações do Ghost Driver no PC oferecem suporte a personalizações avançadas no nível da página por meio do prefixo de capacidade phantomjs.page.settings. Isso permite que você substitua propriedades em cada objeto de página criado durante uma sessão.

Um caso de uso comum é a substituição da string do User-Agent. Alguns sites filtram o tráfego com base no User-Agent para bloquear a extração de dados (screen scraping). Ao definir um User-Agent personalizado, você pode simular diferentes dispositivos, como navegadores iOS ou Android.

Configuração de PáginaDescriçãoValor Comum
userAgentSubstitui a string do User-Agent do navegadorMozilla/5.0 (iPhone; CPU iPhone OS 10_0...)
javascriptEnabledAtiva ou desativa a execução de JavaScripttrue
loadImagesControla se as imagens são carregadasfalse (para extração de dados mais rápida)
resourceTimeoutDefine o tempo máximo de carregamento do recurso em ms10000
Limitações Atuais

A partir da versão 1.0.2, vários comandos do WebDriver ainda não foram implementados no Ghost Driver. Os recursos ausentes incluem a API de Toque (Touch API), API de geolocalização, emulação móvel, manipulação de armazenamento local e tratamento de alertas/confirmações/solicitações. Verifique a planilha oficial de implementação para o status atual.

Lista de Verificação de Otimização:

  • Defina phantomjs.binary.path para o local absoluto do executável
  • Desative o carregamento de imagens para um desempenho de extração mais rápido
  • Passe --ignore-ssl-errors=true para testes internos
  • Substitua o User-Agent ao testar layouts responsivos
  • Registre-se no Selenium Grid para testes distribuídos

Perguntas Frequentes

Q: Qual é a diferença entre Ghost Driver e PhantomJS?

PhantomJS é um navegador WebKit headless escrito em C++. O Ghost Driver é uma implementação em JavaScript do protocolo WebDriver que é executado dentro do PhantomJS. Ao configurar as opções do Ghost Driver no PC, você está dizendo ao Selenium como se comunicar com o PhantomJS por meio da interface do Ghost Driver.

Q: Como faço para passar argumentos de linha de comando personalizados para o PhantomJS?

Use a capacidade desejada `phantomjs.cli.args`. Passe uma matriz de strings onde cada string representa um argumento CLI. Por exemplo, para ignorar erros de SSL, defina a capacidade para uma matriz contendo `--ignore-ssl-errors=true`.

Q: Posso usar o Ghost Driver com o Selenium Grid?

Sim. Inicie o PhantomJS com o parâmetro `--webdriver-selenium-grid-hub` seguido pela URL do seu hub. A instância do PhantomJS se registrará automaticamente na grade e ficará disponível para a execução de testes distribuídos.

Q: Por que meu teste falha com erros de 'não implementado' (not implemented)?

O Ghost Driver ainda não implementa todos os comandos do WebDriver. A API de Toque, geolocalização, armazenamento local e tratamento de alertas estão entre os recursos atualmente não suportados. Verifique a planilha oficial de status de implementação para confirmar se o seu comando específico está disponível.