2

問題は、Xサーバーを実行せずにWebサイトのスクリーンショットをキャプチャする必要があることです。

したがって、理論的には、仮想フレームバッファを作成し、それを使用してスクリーンショットをキャプチャすることが可能です。

同様の解決策はありますか、アドバイスをいただければ幸いです。

スルタン

4

1 に答える 1

7

Selenium WebDriverとpyvirtualdisplay(xvfbを使用)の組み合わせを使用して、仮想ディスプレイでブラウザーを実行し、スクリーンショットをキャプチャできます。

したがって、必要なセットアップは次のとおりです。

  • SeleniumPythonバインディング
  • pyvirtualdisplay Pythonパッケージ(xvfbに依存)

Debian / Ubuntu Linuxシステムでは、次の方法ですべてをセットアップできます。

  • $ sudo apt-get install python-pip xvfb
  • $ sudo pip install selenium

セットアップが完了すると、次のコード例が機能するはずです。

#!/usr/bin/env python

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Firefox()
browser.get('http://www.google.com')
browser.save_screenshot('screenie.png')
browser.quit()

display.stop()

この意志:

  • 仮想ディスプレイを起動する
  • Firefoxブラウザを起動します
  • google.comに移動します
  • スクリーンショットをキャプチャする
  • ブラウザを閉じます
  • 仮想表示を停止します
于 2011-07-04T15:48:00.397 に答える