我在EC2实例上。所以没有图形用户界面。
$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
发布于 2011-05-31 13:23:42
打开终端并运行此命令xhost +
。每次重新启动计算机时都需要运行此命令。如果一切正常,你可以把这个添加到启动命令中
还要确保在您的/etc/environment文件中有一行
export DISPLAY=:0.0
然后,运行您的测试以查看您的问题是否已解决。
在使用这个之前,请注意下面来自sardathrion的评论。
发布于 2012-07-08 21:52:03
最简单的方法可能是使用xvfb-run:
DISPLAY=:1 xvfb-run java -jar selenium-server-standalone-2.0b3.jar
xvfb-run为你跳了整个X权限舞,试一试吧!
发布于 2015-10-22 16:51:20
如果您使用Maven,您可以在测试前使用xvfb-maven-plugin启动xvfb,使用相关的DISPLAY
环境变量运行它们,最后停止xvfb。
https://stackoverflow.com/questions/6183276
复制相似问题