我试图在无头的CentOS服务器上运行Firefox GUI浏览器来执行一些Webtesting。
我不需要看graphics输出,因为我使用Selenium服务器API来控制浏览器的input并检查输出。
该设置已成功在桌面Mac电脑上进行testing。 但是,它无法在我的无头VPS CentOS服务器上运行,并显示以下消息“Error:no display specified”。 (这是有道理的,因为它只是一个坐在机架上的服务器。)
如何让Firefox在没有显示的情况下运行,Selenium将能够与之交互? 或者更广泛地说,在没有显示的情况下,人们如何在Linux服务器上运行仅限于GUI的应用程序?
我注意到Firefox有这个命令行选项:
X11 options --display=DISPLAY X display to use
不幸的是,我不知道X11或CentOS下的显示器,所以我不知道要在命令行上指定什么,或者这会有所帮助。
使用Xvfb。 它给你一个X服务器,不需要连接到物理显示器。
(所以,在CentOS上,你可以像“yum install xorg-x11-server-Xvfb”一样。)
然后你可以用命令“/ path / on / which / installed / Xvfb:1 -screen 0 1024x768x24&”显示“:1”。 这将创build一个分辨率为1027×768和深度为24的屏幕。使用“&”将使该命令在后台执行。
在启动Firefox之前,您需要使显示可以访问,这是通过使用“导出”命令完成的 – 即。 “export DISPLAY =:1”,指向任何适合的主机。