Ruby Headless gem 屏幕尺寸未得到遵守

标签 ruby watir-webdriver headless xvfb

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

这是设置 Headless 环境的代码:

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

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

我将 headless (headless)尺寸更改为 3200x1800x24,我的屏幕截图为 1585 x 1718。 我将 headless (headless)尺寸更改为 50x90x24,屏幕截图为 187 x 8,在这种情况下整个网页都看不到。

对这种行为有什么解释吗?如何将 headless (headless)屏幕设置为 1600 x 900?我想知道这是 Xvfb 的问题,还是 Headless 与 Xvfb 一起工作的方式,但我不太了解它是如何工作的,而且我今天在 Xvfb 上所做的阅读并没有为我阐明一些事情。

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

最佳答案

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

Xvfb :1 -screen 0 1600x900x24

关于Ruby Headless gem 屏幕尺寸未得到遵守,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25817555/

相关文章:

wordpress - 带有 headless (headless) WordPress 的 Next.js 获取帖子需要授权(JWT)吗?

xml - 使用eclipse从xsd生成 headless (headless)xml

css - @at-root a#{&} 导致错误

ruby-on-rails - Activerecord-import 获取 ArgumentError : Invalid arguments! 错误

Windows 路径上的 Ruby for requires in dir 不工作

watir - 如何使用 watir-webdriver 模拟 CTRL+Click?

Tinymce 选择文本

ruby-on-rails - 图像的 Rails 3.1 绝对 URL

watir-webdriver - chromedriver 在 Windows 7 上崩溃

javascript - 如何登录 Puppeteer?