Como posso usar o firefox para tirar screenshots de página inteira a partir da linha de comando? [duplicado]

18

Eu preciso fazer uma captura de tela de uma página da web inteira.

Eu vi

por Nymeria 02.07.2014 / 07:46

3 respostas

13

Para criar capturas de tela de páginas da web mostrando a área inteira rolável da página no firefox, proponho duas maneiras separadas .

Ambas salvam uma imagem da página que mostra todas as partes ou a página da web que você pode alcançar rolando para baixo (e para a direita / esquerda) - pense em todas as posições da vista unidas; Para páginas longas, a imagem pode ter vários milhares de pixels de altura.

A maneira "profissional" - usando uma ferramenta de teste e automação em nível de GUI do navegador da web:

A ferramenta de automação Selenium - normalmente usada para testes de interface do usuário - pode fazer capturas de tela de página inteira; Parece ser alguma sobrecarga para configurá-lo apenas para essa tarefa, no entanto.

Por exemplo:

Command: open; Target: http://www.google.com
Command: captureEntirePageScreenshotAndWait; Target: \Screenshots\test.png

Veja so.SE: Capturas de tela usando o plugin Selenium IDE Firefox

Para instalar a parte do firefox do Selenium, obtenha o add-on do firefox - mas não da página oficial de complementos - está no página de download do Selenium como um arquivo xpi. Esta é a versão atual .

(Existem muitos extras para estender o selênio em si (mas no complemento técnico do firefox), todos chamados de "Selenium ..." ou mesmo "Selenium IDE ..." no Site de Complementos - muito confuso.

A maneira "agressiva" - usando comandos internos do firefox pela automação do teclado:

Há um prompt de comando interno no firefox, uma espécie de ferramenta de desenvolvimento, que, como apontou @Fireflight, tem um comando para fazer capturas de tela. Mas, tanto quanto eu sei, isso não pode controlado a partir da linha shell de comando normalmente. Mas o que podemos fazer é simular as teclas pressionadas para usá-las.

Precisamos escolher uma janela do navegador, abrir o prompt, inserir o comando interno do firefox (usando um nome de arquivo com base na data e hora atuais), executar o comando e fechar o prompt novamente:

FF=$(xdotool selectwindow)
xdotool key --window $FF Shift+F2 sleep 1
xdotool type --window $FF --delay 50 "screenshot page-$(date +%Y%m%d-%H%M%S).png --fullpage "
xdotool key --window $FF Return sleep 0.5 key --window $FF Shift+F2

O utilitário de linha de comando xdotool pode interagir com o X windows on o nível de eventos X11. Nós o usamos para escolher a janela do firefox que mostra a página, e para enviar as teclas certas para fazer a captura de tela.

(Esta é uma abordagem um tanto frágil: depende do tempo do teclado, não funcionará se o prompt já estiver aberto ou contiver texto (para abrir ou fechá-lo, pressione Shift-F2) - mas se funcionar, é muito legal.)

Como um exemplo desse tipo de captura de tela, aqui está um exemplo de man xdotool em manpages.ubuntu.com , reduzido para 20% (original 1336x15653), feito com a xdotool solution:

    
por Volker Siegel 02.07.2014 / 08:54
10

No Firefox, você pode clicar em Shift-F2 e, em seguida, na linha de comando exibida, basta digitar:

screenshot filename.png --fullpage

Existem vários mais comandos e opções disponível também.

    
por Fireflight 02.07.2014 / 20:20
1

Você pode tirar um vídeo do seu firefox. Use um comando como:

mkdir ~/my_video
cd ~/my_video
avconv  -an  -f x11grab -r 30 -s 1024x768 -i :0.0+10,20  -vcodec libx264  -preset ultrafast -threads 0 video.mkv

Você provavelmente precisará modificar o tamanho (1024x768) e a posição (: 0,0 + 10,20) para atender às suas necessidades.

Depois de ter o vídeo, você pode convertê-lo em vários arquivos .png com o mplayer:

mplayer video.mkv -vo png

Selecione a melhor imagem para suas necessidades.

    
por sмurf 02.07.2014 / 09:05