1. ホーム
  2. python

[解決済み] XvfbでSeleniumを実行するには?

2023-02-14 10:36:03

質問

EC2インスタンスを使用しています。そのため、GUIはありません。

$pip install selenium
$sudo apt-get install firefox xvfb

それから、こうするんだ。

$Xvfb :1 -screen 0 1024x768x24 2>&1 >/dev/null &

$DISPLAY=:1 java -jar selenium-server-standalone-2.0b3.jar
05:08:31.227 INFO - Java: Sun Microsystems Inc. 19.0-b09
05:08:31.229 INFO - OS: Linux 2.6.32-305-ec2 i386
05:08:31.233 INFO - v2.0 [b3], with Core v2.0 [b3]
05:08:32.121 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
05:08:32.122 INFO - Version Jetty/5.1.x
05:08:32.123 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
05:08:32.124 INFO - Started HttpContext[/selenium-server,/selenium-server]
05:08:32.124 INFO - Started HttpContext[/,/]
05:08:32.291 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@1186fab
05:08:32.292 INFO - Started HttpContext[/wd,/wd]
05:08:32.295 INFO - Started SocketListener on 0.0.0.0:4444
05:08:32.295 INFO - Started org.openqa.jetty.jetty.Server@1ffb8dc

素晴らしい、これですべてうまくいくはずですね?

私のコードを実行すると

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox() 
browser.get("http://www.yahoo.com") 

こんなの出るんだ。

Error: cannot open display: :0

どのように解決するのですか?

ターミナルを開き、次のコマンドを実行します。 xhost + . このコマンドは、マシンを再起動するたびに実行する必要があります。もし、正常に動作するようであれば、次のコマンドを起動コマンドに追加してください。

また、/etc/environment ファイルに、次の行があることを確認してください。

export DISPLAY=:0.0 

そして、テストを実行し、問題が解決されたかどうかを確認します。

すべての人は、これを使用する前に、以下のsardathrionからのコメントに注意してください。