ホームページ > バックエンド開発 > Python チュートリアル > ヘッドレス環境で Selenium を実行する方法: 「ディスプレイを開けません」エラーを解決するには?

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

Linda Hamilton
リリース: 2024-11-15 15:29:03
オリジナル
340 人が閲覧しました

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 テストを効果的に実行できます。これにより、テストがどのような環境でも正常に実行できるようになります。

以上がヘッドレス環境で Selenium を実行する方法: 「ディスプレイを開けません」エラーを解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート