1

我面临完全相同的问题https://github.com/mozilla/geckodriver/issues/1358

从 linux 截取的 Firefox-headless 模式截图缺少输入框

问题:

我们有什么办法可以解决这个问题。我正在使用 FF 83

4

2 回答 2

0

这可以使用 Firefox 设置来解决。

widget.disable-native-theme-for-contenttrue

参考 :

https://www.reddit.com/r/firefox/comments/k2nghh/any_alternatives_for_firefoxlinuxheadless/

PS:感谢回答我问题的reddit用户:)

我验证它正在工作。

于 2020-11-29T14:03:53.227 回答
0

你没看错。对于Selenium驱动的GeckoDriver在无头模式下启动的 屏幕截图无法正确显示表单控件

此问题已关闭,因为原始问题与 Firefox 相关,并且通过某些输入字段在无头模式下截屏时为黑色特定于提到的平台进行跟踪:@Michael Smith

看起来这是由于在 GTK下没有在 headless 模式下创建 nsITheme 对象,因为 nsNativeThemeGTK 依赖于我们无法在 headless 模式下访问的 API。因此,这不应影响 Windows 和 macOS 平台。

他进一步详细说明:

当 nsITheme 对象不可用时,我们有现有的备用路径,但在正常情况下,它们似乎没有在任何 Windows、macOS 或 Linux 上执行。例如,下拉按钮的宽度由下拉列表中滚动条的宽度决定。这由 GetNondisappearingScrollbarWidth测量,归结为询问垂直滚动条 nsBoxFrame 它的首选宽度是多少。通常这最终是使用调用特定于平台的代码的 nsITheme::GetMinimumWidgetSize 来计算的;在没有主题的情况下,我们依靠应用到滚动条 XUL 元素及其子元素的 CSS 计算的大小。请注意, 垂直滚动条拇指具有指定的最小高度,但没有最小宽度,因此计算出的滚动条宽度最终为 0,下拉按钮最终为 0 宽度。为 thumb[orient="vertical"] 添加最小宽度会导致下拉按钮在无头模式下显示。它还会使滚动条沿侧面显示,但没有为滑块设置颜色,因此它只是一条白色条带。


结论

这个问题被分配了优先级 3,并且仍然处于打开状态,没有其他选择。

于 2020-11-26T21:15:13.140 回答