Firefox agora tem modo headless nativo

image_pdfimage_print

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
Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!