「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ヘッドレス環境で Selenium を実行する方法: 「ディスプレイを開けません」エラーを解決するには?

ヘッドレス環境で Selenium を実行する方法: 「ディスプレイを開けません」エラーを解決するには?

2024 年 11 月 19 日に公開
ブラウズ:719

How to Run Selenium in Headless Environments: Overcoming the

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