我在各种云平台(如Amazon AWS和Cloud 9)上使用Codeception。默认情况下,它们都不具有GUI。 我的问题是,你可以在这种types的系统上运行Selenium吗? 或者我需要以某种方式获得一个graphics用户界面?
seleniumium只是一个图书馆,因此,如果您在配备了GUI的系统上运行,seleniumium并不特别在意。 你可能会问的是:如果我使用seleniumium来打开浏览器,那么浏览器将在没有GUI的系统上工作。 答案是:这取决于!
有无头的浏览器:也没有GUI组件的浏览器。 HtmlUnit与seleniumium一起打包。 另一个流行的浏览器是PhantomJS ,它有第三方的seleniumium绑定库叫GhostDriver 。 我个人会避免这两个 ! HtmlUnit使用JavaScript引擎,目前的桌面浏览器都不支持,因此测试不是很可靠。 GhostDriver并没有维持2年 ,因此也导致了不可靠的结果。 PahntomJS绝对是一种选择,因为它使用WebKit – Safari和Chrome浏览器中的引擎,但是您必须编写自己的API 。
大多数系统将允许你有一个虚拟的GUI。 你提到了Ubuntu,这是一个Debian衍生产品。 在网上有几个教程,告诉你如何安装Xvfb,其中大部分是不完整的或错误的。 在Debian上,你安装一个像这样的无头浏览器:
apt-get install xvfb
wget
在你的服务器上抓包。 /usr/local/lib
类的/usr/local/lib
,然后创建一个从/usr/local/bin
到启动浏览器的二进制文件的软链接。 xvfb-run firefox
。 这可能会产生一些错误,您必须修复。 在我的情况下,我错过了libdbus-glib-1-2
库,我可以使用apt-get来安装它。 Xvfb :99 &
。 有关更多信息,请参阅文档 。