Cor*_*guy 7 firefox selenium selenium-webdriver
我试图弄清楚如何隐藏由Selenium实例化的Firefox实例的边框(包括地址栏,选项卡,标题栏……不是浏览器视口的所有内容)。
如果有某种方法可以使用userChrome.css,那就足够简单了。我尝试使用此答案作为指南来加载包含userChrome.css的配置文件文件夹,但它似乎忽略了样式。我还浏览了Firefox的about:config,以查看是否存在某些隐藏窗口框架的偏好设置,但是我还没有发现任何东西。
使用Selenium创建实例时,允许我隐藏所有或某些这些元素的任何解决方案都将有所帮助。我知道这很愚蠢,但是有时候就是这样,你知道吗?
-编辑-
我认为标题栏不需要隐藏。但是其他所有内容都应该隐藏。
-另一个编辑以澄清一些事情-
我的意见作为一个例子提到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。我对此无能为力。
我们正在使用硒(独立)服务器3.8.1。切换到3.141.59并没有做任何更改。
除非有适用于Firefox 52的版本组合,否则我认为我唯一能做的就是等待更新。
最后我想通了。为了让 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);
Run Code Online (Sandbox Code Playgroud)
感谢Github 上的avinesh09提供了我解决问题所需的信息。它是如此简单,但这必须是我忽略尝试加载配置文件的唯一方法。
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |