ホームページ >バックエンド開発 >Python チュートリアル >Amazon EC2 で Xvfb を使用して Selenium ヘッドレスを実行する方法?
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 サイトの他の関連記事を参照してください。