【发布时间】:2019-10-05 02:20:01
【问题描述】:
我试图弄清楚如何隐藏由 Selenium 实例化的 Firefox 实例的边框(包括地址栏、选项卡、标题栏......所有不是浏览器视口的东西)。
如果有某种方法可以让它使用 userChrome.css,那就很简单了。我尝试使用this answer 作为指南加载包含 userChrome.css 的配置文件文件夹,但它似乎忽略了样式。我还查看了 Firefox 的 about:config 以查看是否有一些偏好可以隐藏窗口的框架,但我还没有找到任何东西。
任何允许我在使用 Selenium 创建实例时隐藏所有或部分这些元素的解决方案都会有所帮助。我知道这很愚蠢,但有时就是这样,你知道吗?
-编辑-
我认为不需要隐藏标题栏。但其他一切都应该隐藏起来。
-另一个编辑以澄清一些事情-
我在 cmets 中提到了 kiosk 模式,作为我要实现的 某种 事物的示例。不过,Kiosk 模式并不是我想要的。这些窗口并不意味着全屏,但它们仍应缺少通用浏览器窗口的元素。把它想象成一个电子应用程序。开箱即用,Electron 缺少地址栏、选项卡等。这基本上是我们的应用程序所拥有的,但它适用于普通的旧 Firefox。同样,这些元素是否显示通常不会影响测试,但我们还是希望它们隐藏。
最后,我的一个朋友尝试使用包含在 Firefox 配置文件中的 userChrome.css 来实现这个目标,并且能够让 Selenium 使用 userChrome。所以也许我需要弄清楚我做错了什么。他的做法和我的做法最大的不同是我必须使用远程 Web 驱动程序进行测试。但即便如此,它应该能够加载 userChrome.css 文件。我会尝试用更多细节来更新这个问题。
-编辑-
我认为 userChrome 在指定配置文件时无法正常工作的原因是因为使用了 Selenium/Geckodriver/Firefox 的版本。
我开始使用的 geckodriver 版本是 0.15。 0.17 的行为完全相同。 0.18 根本不尊重我传递给它的配置文件,而是让 Firefox 打开配置文件选择窗口(不是很有用,但我至少能够选择正确的配置文件并看到 userChrome.css 被应用)。 0.24 也不例外。
Firefox 是 52.9.0。我对此无能为力。
我们正在使用 selenium(独立)服务器 3.8.1。切换到 3.141.59 没有改变任何东西。
除非有适用于 Firefox 52 的版本组合,否则我认为我唯一能做的就是等到有更新。
【问题讨论】:
-
Selenium 在 Viewport 中工作 为什么你关心隐藏边框(包括地址栏、选项卡、标题栏......所有不是浏览器视口的东西) ?你的用例是什么?
-
我知道它对实际运行测试没有任何影响。测试的目的是测试类似信息亭的应用程序。尽管这些元素的存在与测试是否按预期工作完全没有关系,但最好(如果可能)以模拟其预期用途的方式测试 Web 应用程序。底线是:这不是我的主意,我只是想让上级高兴????
-
@DebanjanB Firefox 没有 Chrome 那样的内置信息亭模式。虽然 Chrome 有
--kiosk命令行参数,但 Firefox 则没有。相反,我们使用 userChrome.css 来实现类似的效果。使用 Chrome 也不是一种选择。这个问题不一样。
标签: selenium firefox selenium-webdriver