2012-05-01 41 views
83

我们正在考虑将我们的生产服务器从Ubuntu-桌面 10.04升级到Ubuntu- 服务器 12.04。是否可以在没有GUI的情况下运行硒(Firefox)网络驱动程序?

我们在当前的桌面操作系统上运行了各种服务,例如Selenium Web Driver。我的问题是Selenium Web Driver可以从基于cli的系统运行吗?

我的直接想法是,它不能,因为它依赖于Firefox,但我想要有人证明我错了!

+0

相关:Chrome浏览器在无头运行硒(http://www.chrisle.me/2013/08/running-headless -selenium-with-chrome /) – jfs

回答

78

你在找什么是

是的,它可以无恶意地在Firefox上运行Selenium。这里有一个post你可以关注。

以下是总结的步骤来设置的Xvfb

#install Xvfb 
sudo apt-get install xvfb 

#set display number to :99 
Xvfb :99 -ac & 
export DISPLAY=:99  

#you are now having an X display by Xvfb 
+3

这可以工作并支持截图。我用这个。它也适用于谷歌浏览器。 – Isaac

+0

我不认为这个工作了(至少不容易,因为它需要一个新的geckodriver很像铬) –

+1

@ArchimedesTrajano这仍然有效。方向是用'Xvfb'来创建一个虚拟显示器,而不是用来安装和配置Selenium(它需要在路径上有'geckodriver')。 – expz

7

是的。在启动webdriver时,您可以使用HTMLUnitDriver代替FirefoxDriver。这是无头浏览器设置。详情可以在here找到。

+1

这个支持函数是否会有save_screenshot()? http://coreygoldberg.blogspot.co.uk/2011/06/python-selenium-webdriver-capture.html – nonshatter

+0

还没有尝试,但它可能是可能的,因为你仍然有效地创建一个用户界面,但显示它在'虚拟'窗口上。 – grahaminn

+2

HTMLUnitDriver不会支持捕捉屏幕截图,因为内容根本不会呈现(问题1361)。我能想到的另一种方法是使用getHTMLSource并显示HTML页面而不是截图。 –

10

如果你想模拟浏览器支持,那么有可能会采取另一种方法。

https://github.com/detro/ghostdriver

有人硒会议期间宣布,它仍然在发展。它使用PhantomJS作为浏览器,比HTMLUnitDriver好得多,目前还没有截图,但仍处于积极的发展阶段。

1

请注意,HtmlUnitDriver webclient是单线程的,Ghostdriver只有40%的功能是WebDriver。

尽管如此,Ghostdriver正常运行测试,我有问题连接到WebDriver枢纽。

+0

这是否提供其他答案没有的新信息? –

15

我易于管理的隐藏浏览器窗口。

只是install PhantomJS。然后,改变这一行:

driver = webdriver.Firefox() 

到:

driver = webdriver.PhantomJS() 

你的代码的其余部分将不需要改变,没有浏览器将打开。出于调试目的,请在代码的不同步骤使用driver.save_screenshot('screen.png'),或者继续在开发中使用Firefox webdriver。

4

一个可选的方法是使用pyvirtualdisplay这样的:

from pyvirtualdisplay import Display 

display = Display(visible=0, size=[800, 600]) 
display.start() 

#do selenium job here 

display.close() 

一个较短的版本是:

with Display() as display: 
    # selenium job here 

这是一般的xvfb一个Python封装,更加方便易莫名其妙。

顺便说一句,虽然PhantomJS是一个无头的浏览器,如果你使用它没有窗口将被打开,似乎PhantomJS仍然需求一个GUI环境中工作。

当我在无头模式下使用PhantomJS()代替Firefox()时,我得到了错误代码-6(连接控制台)。然而,在桌面环境中一切正常。

相关问题