我试图弄清楚如何隐藏由Selenium实例化的Firefox实例的边框(包括地址栏,标签,标题栏……不是浏览器视口的所有内容)。
如果有某种方法可以使用userChrome.css,那就足够简单了。我尝试使用this answer作为指南来加载一个包含userChrome.css的配置文件文件夹,但它似乎忽略了样式。我还浏览了Firefox的about:config,以查看是否存在某些隐藏窗口框架的偏好设置,但是我还没有发现任何东西。
使用Selenium创建实例时,任何允许我隐藏所有或某些这些元素的解决方案都是有帮助的。我知道这很愚蠢,但是有时候就是这样,
-编辑-
我认为标题栏不需要隐藏。但是其他所有内容都应该隐藏。
-另一项澄清一些事情的编辑-
我在评论中提到了信息亭模式,以作为我要使用的种的示例。不过,信息亭模式并不是我想要的。窗口并非全屏显示,但它们仍应缺少通用浏览器窗口的元素。可以将其视为电子应用程序。开箱即用,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。我对此无能为力。
我们正在使用硒(独立)服务器3.8.1。切换到3.141.59不变。
除非有适用于Firefox 52的版本组合,否则我认为我唯一能做的就是等待更新。
答案 0 :(得分:2)
最后我弄清楚了。为了让Selenium使用我的自定义配置文件,我需要执行以下操作:
FirefoxProfile profile = new FirefoxProfile(new File(path_to_profile));
FirefoxOptions options = new FirefoxOptions().setProfile(profile);
RemoteWebDriver driver = new RemoteWebDriver(options.toCapabilities());
driver.get(url_of_webpage);
感谢Github上的avinesh09提供解决问题所需的信息。很简单,但这必须是我忽略的唯一尝试加载配置文件的方法。
答案 1 :(得分:0)
如果全屏(kiosk)模式是您所需要的(那么您所看到的就是视口),它就很简单:
driver.manage().window().fullscreen();
这与在浏览器中按“ F11”是相同的用户体验。