我在EC2实例。所以没有GUI。如何在Xvfb中运行Selenium?
$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 [email protected]
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 [email protected]
大,一切都应该现在的工作,对不对?
当我运行我的代码:
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
如果您在没有运行X的系统上,则显示:0应该可用。尝试运行Xvfb:0 - 另请参阅xvfb-run,如@ema所述 – fijiaaron 2012-10-25 12:48:39
对于未来的关注者,我描述了Ubuntu服务器的解决方案:https://www.namekdev.net/2016/08/selenium-server-without- x-window-system-xvfb/ – Namek 2016-08-05 11:11:21