Xvfb での Selenium の実行
GUI を使用せずに EC2 インスタンスで Selenium テストを実行するには、Xvfb を使用して仮想フレームバッファを作成する必要があります。
問題の特定:
Selenium と Xvfb をインストールしているにもかかわらず、Selenium を使用して Firefox ブラウザを起動すると、「ディスプレイを開けません: :0」というエラーが発生します。
解決策: PyVirtualDisplay の利用
この問題を解決するには、ヘッドレス WebDriver テストを実行できる Xvfb の Python ラッパーである PyVirtualDisplay を利用できます。
これは Python スクリプトです。これは、このアプローチを示しています:
from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(800, 600)) display.start() # Now Firefox will operate in a virtual display, making it headless. browser = webdriver.Firefox() browser.get('http://www.google.com') print(browser.title) browser.quit() display.stop()
追加オプション
また、外部依存関係を必要としない代替モジュールである xvfbwrapper を使用することもできます:
from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() # Launch processes within the virtual display here vdisplay.stop()
または、コード構造を改善するには、コンテキスト マネージャーとして xvfbwrapper を使用します:
from xvfbwrapper import Xvfb with Xvfb() as xvfb: # Launch processes within the virtual display within this code block. # xvfb starts and stops automatically.
以上がXvfb を使用して EC2 インスタンスで Selenium テストをヘッドレスで実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。