一尘不染

以非超级用户身份从ruby在Xvfb内运行Selenium :: WebDriver :: Firefox

selenium

我正在尝试使用ruby脚本进行一些无头的测试。本质上,我正在执行display:1上的Xvfb,然后Watir::Browser.new(:firefox)使用watir-
webdriver启动。

如果您以root用户身份运行脚本,则效果很好-我可以运行x11vnc并观看脚本执行浏览器并与之交互。

问题是,我需要能够从Rails应用程序调用此ruby脚本,而不是以root身份运行…如果我尝试以常规用户身份从命令行运行脚本,则Xvfb会在:1上启动像往常一样,但是Watir不会启动浏览器…它最终会在60秒后超时。通过VNC连接时,鼠标光标将显示黑屏。

我可以从命令行完成全部工作-启动Xvfb,然后启动firefox --display=:1并启动浏览器,因此它一定是Selenium问题,对不对?

果壳:Selenium / Webdriver拒绝在Xvfb中启动浏览器,除非我以root身份运行脚本。


阅读 324

收藏
2020-06-26

共1个答案

一尘不染

  • 已解决-编辑*-对不起,我无法回答问题,但显然我的帐户太新了,无法执行此操作。

解决了!在您问了这个问题之后,类似的事情会如何解决自己,真是令人惊讶。

对于那些想知道为什么的人,我需要做一些事情…

1)确保有问题的用户具有有效的主目录(默认情况下,www-data没有…其主目录由root拥有)

2)从命令行启动Xvfb,然后从命令行启动firefox(不是从脚本内部)-这将用普通的.dbus,.gconf等文件夹填充用户主文件夹

3)如果收到大量延迟,然后出现错误消息,例如“在加载或保存firefox-bin的配置信息时发生错误”,请删除用户主目录中的.dbus文件夹

4)再试一次#2-如果以前有配置错误,现在应该消失了。

5)尝试再次运行脚本。

这对我来说就像是一种魅力,因此,如果您在从Web应用程序中运行Xvfb和watir-webdriver时遇到类似的问题,请尝试一下。

感谢所有人为在网络上发布最佳问答网站所做的贡献…这个地方节省了我的屁股,比我想提的要多。

注意:用户最初在其问题中输入此修订内容,因为他们不知道如何将其发布为答案。后来,一个好心人将其删除,但从未添加为答案。

2020-06-26