Xvfb を使用して EC2 インスタンスで Selenium テストをヘッドレスで実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-17 05:12:03
オリジナル
146 人が閲覧しました

How to Run Selenium Tests Headlessly on EC2 Instances Using Xvfb?

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 サイトの他の関連記事を参照してください。

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