route127の日記: FF系ブラウザでスクリーンショットを撮るワンライナ
表のFF56スレの話題読んでてコマンドラインからスクリーンショットを撮るワンライナを書いてみた。
スクリーンショットを撮るだけなら、
perl -ML -e "binmode(STDOUT);print WWW::Mechanize::Firefox->new(tab=>'current')->content_as_png;" > 170919.png
と書けるのだが、フルページのスクリーンショットを撮るためのものは書いたこと無かったので挑戦してみた。
perl -ML -e "$m=WWW::Mechanize::Firefox->new(tab=>'current');$h=$m->element_coordinates($m->selector('body'))->{height};binmode(STDOUT);print $m->content_as_png(undef,{height=>$h});" > 170919.png
element_coordinatesでbody領域の高さを取得してcontent_as_pngの引数に与えればいいけどワンライナに収めるのは無理矢理感ある。
そもそもこのワンライナ動かすために
・FF系ブラウザへのmozreplインストール
・cpanからLとWWW::Mechanize::Firefoxのインストール
と準備が必要なので頻繁にスクリーンショット撮る人でもない限りあまり実用性はないかも。
Lは無くても動くのだが、あると-MWWW::Mechanize::Firefoxを書かずに済むので横着できる。
そういえばLについての日本語での情報はAcme大全以外であるんだろうか?
(モジュール名が検索で調べにくい)
FF系ブラウザでスクリーンショットを撮るワンライナ More ログイン