ホームページ >バックエンド開発 >Python チュートリアル >Amazon EC2 で Xvfb を使用して Selenium ヘッドレスを実行する方法?

Amazon EC2 で Xvfb を使用して Selenium ヘッドレスを実行する方法?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-26 10:01:09150ブラウズ

How to Run Selenium Headless Using Xvfb on Amazon EC2?

Amazon EC2 で Xvfb を使用して Selenium ヘッドレスを実行する

GUI が存在しない Amazon EC2 インスタンスで Selenium を実行しようとしています。必要なパッケージをインストールして Xvfb を開始した後、コードを実行すると、「エラー: ディスプレイを開けません: :0」というエラーが発生します。このエラーは、EC2 インスタンスにグラフィカル表示がないことが原因で発生します。

この問題を解決するには、仮想ディスプレイ環境で Selenium を起動できる PyVirtualDisplay または xvfbwrapper の利用を検討してください。これらのモジュールはヘッドレス X サーバーを作成し、WebDriver テストを物理 GUI なしで実行できるようにします。

PyVirtualDisplay Method

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()

このコード スニペットは、PyVirtualDisplay を使用してヘッドレス X サーバーを開始します。仮想ディスプレイ環境。この環境内では、Firefox ブラウザが起動し、指定された URL に移動します。ページ タイトルにアクセスした後、ブラウザが終了し、仮想ディスプレイが閉じられます。

Xvfbwrapper メソッド

from xvfbwrapper import Xvfb

vdisplay.start()

browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()

vdisplay.stop()

このコードは、Xvfbwrapper を使用して仮想ディスプレイを開始します。 。 PyVirtualDisplay の例と同様に、Firefox ブラウザが仮想ディスプレイ内で起動され、ページが表示され、ブラウザとディスプレイが終了します。

コンテキスト マネージャー メソッド

from xvfbwrapper import Xvfb

with Xvfb() as xvfb:
    browser = webdriver.Firefox()
    browser.get('http://www.google.com')
    print browser.title
    browser.quit()

この方法では、コンテキスト マネージャーを使用して、仮想ディスプレイを自動的に開始および停止します。コンテキスト ブロック内で、Firefox ブラウザが起動し、ページにアクセスして、ブラウザが閉じます。

これらの方法を採用することで、GUI を使用せずに Amazon EC2 インスタンスで Selenium ヘッドレス テストをシームレスに実行でき、自動テストが可能になります。効率的な導入を実現します。

以上がAmazon EC2 で Xvfb を使用して Selenium ヘッドレスを実行する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。