Xvfb で Selenium を実行する方法: 「ディスプレイを開けません」エラーを克服する
Xvfb (X 仮想フレームバッファ) は、仮想ディスプレイを提供します。 GUI のない EC2 インスタンスなどのヘッドレス環境でグラフィカル アプリケーションを実行できるようにします。これは、グラフィカル ユーザー インターフェイスのないサーバーで Selenium テストを実行する場合に不可欠です。
ただし、Selenium と Xvfb をインストールした後でも、テストを実行しようとすると「エラー: ディスプレイを開けません: :0」が発生する場合があります。これは、Selenium が Web ページと対話するためにグラフィック表示に依存していることが原因です。
解決策: PyVirtualDisplay または Xvfbwrapper を利用する
この問題を解決するには、PyVirtualDisplay または Xvfbwrapper を使用できます。 、Xvfb を Python モジュールとしてカプセル化します。これらのモジュールは仮想ディスプレイをシミュレートし、Selenium をヘッドレス環境で実行できるようにします。
オプション 1: PyVirtualDisplay
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') print(browser.title) browser.quit() display.stop()
オプション 2: Xvfbwrapper
from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print(browser.title) browser.quit() vdisplay.stop()
コンテキスト マネージャーを利用してプロセスを簡素化することもできます。
from xvfbwrapper import Xvfb with Xvfb() as xvfb: # Launch stuff inside virtual display here. # It starts/stops in this code block.
これらのモジュールを利用すると、グラフィカル ユーザー インターフェイスのないヘッドレス サーバーで Selenium テストを効果的に実行できます。これにより、テストがどのような環境でも正常に実行できるようになります。
以上がヘッドレス環境で Selenium を実行する方法: 「ディスプレイを開けません」エラーを解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。