PHP WebDriver – como usar?

1

Nos últimos anos é possível ver que o Facebook adora PHP, este artigo mostrar mais uma prova disso: O PHP WebDriver.

binary-1536593_960_720

O que é o WebDriver?

PHP WebDriver é uma API capaz de automatizar interações com navegadores Web graças ao código PHP. Suas funções são, por exemplo, testes – fluxo, aceitação, integrações… – e, meu favorito, Crawlers.

Antes de falarmos do WebDriver, é melhor falar sobre Selenium e você também precisa saber que estamos trabalhando com o Java. Sim, este é o primeiro ponto a ter em conta: Não é uma implementação nativa com PHP, mas sim uma integração.

Selenium é uma ferramenta de automação de navegador. Ele possui um Servidor de Controle Remoto, responsável por abrir e fechar instâncias de navegadores e também servir de proxy.

Para interagir com o servidor Selenium, usamos WebDrivers: drivers particulares capazes de enviar comandos aos navegadores que fornecem suporte.

E para interagir com os drivers usamos uma API.

binary-1536624_960_720

Facebook’s PHP WebDriver

O primeiro release surgiu em Outubro de 2013 e o perfil Facebook no github conta com o depósito php-webdriver, também disponível no packagist para usuários de composer.

Esta é uma API parecida às existentes em outras linguagens – Python, Java, JavaScript, Ruby, .NET – com o objetivo de oferecer a mesma interface de programação.

Sua utilização é bastante simples, porém precisa de um Selenium Server rodando. É importante também ter certeza de que seu Selenium Server possui o driver que você busca.

 

Na prática

Existem outros artigos e até ferramentas que indicam o webdriver como ferramenta de testes. Existe inclusive uma ferramenta chamada Codeception, que se baseia no Selenium.

Nosso projeto de exemplo

O site do jogo Tibia contém um ranking de jogadores por servidor, para consulta através de web-page. Se quisermos disponibilizar, de alguma maneira, isto à outras aplicações não existe uma maneira limpa. Optamos, por isso, pela criação de um crawler que vai acessar estes rankings e obter os dados de maneira organizada.

O ranking não requer qualquer tipo de autenticação, o que facilita tudo.

Com o Selenium já pronto, iremos iniciar nossa missão configurando o navegador.

Até aqui nenhuma novidade, somente acessamos a página usando o Firefox/Iceweasel. Acessando o link você pode ver que requer um filtro inicial: devemos optar pelo servidor que queremos visualizar através de uma select-box. Depois deve-se clicar no botão “Submit”.

Depois descobrimos que o select-box pode ser encontrado com um seletor CSS: select[name=world] , assim como o botão Submit:input[name=Submit] .

As coisas começam ficando cada vez mais fáceis.

Após clicar, a página será atualizada (realizaremos uma submissão de formulário) e, quando estiver terminada, existirá agora uma tabela abaixo do filtro.

 

Essa é uma pequena amostra que explica como o PHP WebDriver é útil e facilita nossa vida.

1 COMENTÁRIO

Deixe uma resposta