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 テストを効果的に実行でき、どのような環境でもテストを正常に実行できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3