7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Firefox + Selenium で全画面キャプチャをするたぶん簡単な方法

Last updated at Posted at 2018-08-01

何が問題なんでしたっけ?

昔のFirefoxは全画面キャプチャが取れたけど、geckodriver 経由で操作するようになったあたりから、キャプチャが可視範囲でしかとれなくなった。

そもそもブラウザごとばらばらであり、そういうものらしい。
参考: https://qiita.com/meganetaaan/items/b11338d2867c8c8f072a

ということで、どうしても全画面キャプが欲しいときは、JSで可視範囲を動かし、画像を結合する方法が上の記事でも紹介されています。
僕もこれを参考にいままでやっておりました。でも、サイドバーついてきちゃったり、なんか遅延表示とかでずれたり、縦に長い画面で時間がかかったり、ギャア! しんどい! ってなって。具体的には昨日なって。

要件にもよるのですが、表示されてること分かれば良いとか、ゆるい要件の場合、もっとサクッとやりたい気持ちがある。で、ちょっと試行錯誤してたら、なんか出来た。

結論から

言ってしまえば簡単なんだけど、windowのサイズを内部のサイズにあわせて広げたらうまくいった。一発で撮れるし楽すぎる。

  • Ubuntu 16
  • Firefox 61.0.1
  • GeckoDriver 0.18.0
  • Python 3.6.1
  • Selenium 3.4.3
test.py
url = ''
img_file_save_path = ''

driver = webdriver.Firefox()
driver.get(url)
total_width = driver.execute_script("return document.body.offsetWidth")
total_height = driver.execute_script("return document.body.parentNode.scrollHeight")
driver.set_window_size(int(total_width), int(total_height))
time.sleep(2)
driver.save_screenshot(img_file_save_path)

補足

ほかのOSでできるかやってないのと、ずっとできるかは知らない。

おしまい

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?