PhantomJS é um navegador web headless que pode ser scriptado usando JavaScript. Ele é compatível com sistemas operacionais como Windows, macOS, Linux e FreeBSD. Com o QtWebKit como backend, oferece suporte rápido e nativo para vários padrões web, tais como manipulação do DOM, seletores CSS, JSON, Canvas e SVG.
Um exemplo simples de script para PhantomJS é carregar a página inicial do Google, esperar um pouco e depois capturar-a em uma imagem. Veja abaixo:
var page = require('webpage').create();
page.open('http://www.google.com', function() {
setTimeout(function() {
page.render('google.png');
phantom.exit();
}, 200);
});
PhantomJS é uma solução ótima para várias tarefas:
- Automatização de páginas: Permite acessar páginas da web e extrair informações usando a API DOM padrão ou com bibliotecas comuns como jQuery.
- Captura de tela: É possível capturar programaticamente o conteúdo da web, incluindo SVG e Canvas. Também pode criar capturas de tela de sites com visualização em miniatura.
- Testes de sites headless: Executar testes funcionais com estruturas como Jasmine, QUnit, Mocha, WebDriver, etc.
- Monitoramento de rede: Monitorar o carregamento de páginas e exportar como arquivos HAR padrão. Também é possível automatizar a análise de desempenho usando YSlow e Jenkins.
Para começar a usar PhantomJS, basta instalar e seguir o guia de início rápido. Se quiser aprender mais, leia as perguntas frequentes, explore mais exemplos e estude a documentação completa da API. O código-fonte, o rastreador de problemas e outras informações de desenvolvimento estão disponíveis no github.com/ariya/phantomjs. PhantomJS é distribuído sob a licença BSD (SPDX: BSD-3-Clause).