Ruby Headless gem 屏幕尺寸未得到尊重

Posted

技术标签:

【中文标题】Ruby Headless gem 屏幕尺寸未得到尊重【英文标题】:Ruby Headless gem screen dimensions are not being respected 【发布时间】:2014-11-07 04:18:58 【问题描述】:

我正在使用 Ruby 和 Watir-Webdriver 以及 Headless gem 运行 Watir 测试。

这里是设置无头环境的代码:

headless = Headless.new(dimensions: "1600x900x24")

如果测试崩溃,我们的测试环境会自动捕获屏幕截图。我希望看到 1600x900 的屏幕截图,但图像大约为 1050 x 818(+/- 几个像素),并且网页本身已缩放以适应该区域。

我将无头尺寸更改为 3200x1800x24,我的屏幕截图为 1585 x 1718。 我将无头尺寸更改为 50x90x24,屏幕截图为 187 x 8,在这种情况下整个网页不可见。

对这种行为有什么解释吗?如何将无头屏幕设置为 1600 x 900?我想知道这是否是 Xvfb 的问题,或者 Headless 与 Xvfb 的工作方式,但我不太了解它是如何工作的,而且我今天在 Xvfb 上所做的阅读并没有对我有所启发。

我关心的不是屏幕截图,而是页面缩放以适应 1050 x 818 的缩小尺寸。在那个尺寸下,我正在编写的测试的某些页面元素被包裹在屏幕上并且不可点击,这首先导致测试崩溃。

【问题讨论】:

【参考方案1】:

我以前在 Jenkins 服务器上无头运行时遇到过这个问题。问题出在 Xvfb 上。您可以在命令行设置屏幕分辨率,如下所示:

Xvfb :1 -screen 0 1600x900x24

【讨论】:

感谢您的回复。几个小时以来,我一直在尝试实施您的建议,但到目前为止还没有为我工作。我遇到了很多错误,其中一些我通过谷歌搜索清除了。希望我能弄清楚如何克服这个问题,该问题在网络上的几个地方都有报道,但我还没有找到适用于我的机器的修复程序:“[dix] 无法初始化字体路径元素/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType,从列表中删除!”然后我可以继续我的 Watir 测试! 嗯,我从来没有遇到过这个问题。你能发布你用来启动 Xvfb 的命令吗? 如果我复制并粘贴您上面建议的命令,我会收到我报告的有关 TrueType 的错误消息,这会导致系统挂起并且我永远不会收到命令提示符。 sh -e '/usr/bin/Xvfb :1 -screen 0 1600x900x24' 说“sh: 0: 无法打开 /usr/bin/Xvfb :1 -screen 0 1600x900x24。”我的 TrueType 目录是空的,不确定是否正确。 sudo dpkg-query -W -f='$Status $Package' xvfb 报告“安装确定安装 xvfb。” sudo apt-get -y install x-ttcidfont-conf cabextract ttf-mscorefonts-installer 告诉我我确实有最新版本的 x-ttcidfont-conf。 是的,我为此不知所措。在查看了一些配置之后,这更像是我的命令,所以也许试一试?抱歉,我无法提供更多帮助。 Xvfb :0 -ac -screen 0 1600x900x24; export DISPLAY=:0 唉,那个命令没有让我更进一步。非常感谢您的努力。希望我能弄清楚。如果我这样做,我会发布更新。

以上是关于Ruby Headless gem 屏幕尺寸未得到尊重的主要内容,如果未能解决你的问题,请参考以下文章

gem mysql2未安装在rails上的ruby上[重复]

尝试运行 rspec 时,我得到“未初始化的常量 ActiveModel”

ruby 显示未使用的VCR磁带。与vcr gem一起使用:https://github.com/vcr/vcr

使用 ruby​​ gem xmpp 进行 Facebook 聊天

无法安装 RMagic gem

在 Rails 中使用短语 gem 时内容未更新