Com isto, será fácil e possível tirar, por exemplo, screenshot de uma página sem abrir a interface gráfica do Firefox.
Abaixo, comandos que podem ser executados no console / linha de comando.
# -screenshot assumes -headless /caminho/para/firefox -screenshot https://hacks.mozilla.org/ # Definir a resolução /caminho/para/firefox -screenshot https://hacks.mozilla.org/ --window-size=480,1000
Para ativar o Firefox no modo headless, basta iniciá-lo com a opção -headless, como no exemplo abaixo:
/caminho/para/firefox -headless
E pronto! O Firefox irá executar em modo headless. E agora, como controlar?
Use:
- Selenium/WebDriver
- Selenium é uma ferramenta muito conhecida para automação de navegadores e agora pode ser utilizado com o modo headless, economizando todas as questões relacionadas a inexistência da interface gráfica.
- Nada na escrita do código de teste precisa ser alterado entre o modo normal e o modo headless do Firefox
- DevTools Debugging Protocol
- Firefox tem um protocolo de depuração (debug) que permite scripts controlar o DevTools remotamente
- Há bibliotecas como node-firefox e foxdriver que fazem use de bibliotecas para remotamente depurar websites, obter logs, etc.
Por questões de segurança, o protocolo de depuração remota não é habilitado por padrão, mas podem ser habilitados nas preferências ou na linha de comando.
/caminho/para/firefox --start-debugger-server 6000 -headless
Além disto, o protocolo remoto de depuração também tem o modo compatível com websockets. Pode-se conectar uma webpage a um Firefox remoto e remotamente operá-lo.
/caminho/para/firefox --start-debugger-server ws:6000 -headless