2011-04-25 110 views
6

我试图做一些使用红宝石脚本的无头测试。基本上我正在执行Xvfb显示:1,然后使用watir-webdriver启动Watir::Browser.new(:firefox)作为非root用户运行Selenium :: WebDriver :: Firefox内Xvfb从红宝石作为非root用户

如果以root用户身份运行该脚本,此工作将非常好 - 我可以运行x11vnc并观察脚本执行浏览器并与之交互。

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

我可以从命令行执行所有操作 - 启动Xvfb,然后启动firefox --display=:1并启动浏览器,所以它必须是Selenium问题,对吧?

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

+0

+ +1在你正确的时候添加你的解决方案 – 2011-10-16 14:40:06

+0

@ user724205你的答案应该被添加为答案,而不是复制到问题中。 – 2012-07-16 18:21:54

回答

3
  • 解决 - 编辑* - 抱歉,我不能回答这个问题,但显然我的帐户是最近做的,只是还没有。

解决!惊人的像这样的事情怎么倾向于自己解决后你问的问题...

对于那些想知道为什么,还有我需要做一些事情......

1)确保有问题的用户有一个工作主目录(万维网数据并未默认...其主目录由根拥有)

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

3)如果你得到一个巨大的延迟和th沿着“加载或保存firefox-bin配置信息时出现错误”的错误消息,删除用户主目录中的.dbus文件夹

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

5)尝试再次运行脚本。

这对我来说就像一个魅力,所以如果你有类似的问题运行Xvfb和watir-webdriver从一个web应用程序,试试看。

感谢所有人为推动什么事情做出贡献BEST Q &网络上的一个网站......这个地方比我不在乎的地方节省了我的屁股次数。

注意:用户最初输入了这个修改为他们的问题,因为他们无法弄清楚如何发布它作为答案。这是后来由一些善意的人编辑出来的,但从未作为答案添加。

1

嗨,不知道这个link可以帮你。这帮了我很多。我需要在启动/重启时自动运行watir-webdriver - 它对我很有用(阅读评论)。

相关问题