geckodriver 打开的浏览器没有使用默认设置来运行机器人脚本
Posted
技术标签:
【中文标题】geckodriver 打开的浏览器没有使用默认设置来运行机器人脚本【英文标题】:The browser opened by geckodriver, is not using default settings for running Robot script 【发布时间】:2018-12-29 02:59:35 【问题描述】:我已将 Firefox 中的 layout.css.devPixelsPerPx 设置为 0.9(打开一个新选项卡,输入“about:config”并按 Enter),因为我希望以一定程度的缩放比例打开浏览器。当我手动打开浏览器时,它工作正常。
但是当我运行机器人脚本时,它会打开浏览器并放大而不是上面已经设置的那个。
到目前为止,除了上述之外,我已经尝试了以下选项 - 1.尝试使用设置默认缩放级别的Firefox扩展,但Geckodriver打开的浏览器没有该扩展可用。 2. 运行Cntrl+- 缩小,但是url一改变,缩放就重置为100% 3. 我可以使用命令打开浏览器(设置了正确的缩放级别)。有没有办法让机器人使用现有的浏览器实例而不是打开新的?
如何让机器人以一定的缩放级别打开 Firefox 浏览器?
【问题讨论】:
【参考方案1】:运行脚本时看不到设置有效的原因是 Selenium 在启动浏览器时创建了一个新配置文件。
您在浏览器中所做的任何更改、您添加的任何扩展程序都会存储在您的用户个人资料中。 Selenium 使用干净/香草(如:具有默认设置)配置文件,因此您的测试环境始终是干净的 - 不受您可能在日常工作中添加的自定义、扩展、缓存资源的影响。
如果你想在你的 Selenium 浏览器会话中更改特定设置,在带有 Robotframework 的 Firefox 下 - 你“很幸运”:)。它附带的 SeleniumLibrary 支持使用预先设定的配置文件启动浏览器 - see the documentation, the Open Browser keyword - 它有一个参数 ff_profile_dir
。
因此,创建一个 FF 配置文件,将您的设置设置为您需要的值(我看不出它不会存储在那里的原因),并将其目录作为参数传递给 Open Browser
关键字。因此,当 Selenium 创建浏览器实例时,它将使用此配置文件,并且该设置有效。
【讨论】:
以上是关于geckodriver 打开的浏览器没有使用默认设置来运行机器人脚本的主要内容,如果未能解决你的问题,请参考以下文章
SessionNotCreatedException:无法通过Java使用SeleniumGrid和GeckoDriver Firefox找到一组匹配的功能