首页 > 解决方案 > geckodriver 打开的浏览器没有使用默认设置来运行机器人脚本

问题描述

我已将 Firefox 中的 layout.css.devPixelsPerPx 设置为 0.9(打开一个新选项卡,输入“about:config”并按 Enter),因为我希望以一定程度的缩放比例打开浏览器。当我手动打开浏览器时,它工作正常。

但是当我运行机器人脚本时,它会打开浏览器并放大而不是上面已经设置的浏览器。

到目前为止,除了上述之外,我已经尝试了以下选项 - 1. 尝试使用设置默认缩放级别的 Firefox 扩展,但 Geckodriver 打开的浏览器没有该扩展可用。2. 运行 Cntrl+- 缩小,但是一旦 url 改变,缩放就会重置为 100% 3. 我可以用命令打开浏览器(它设置了正确的缩放级别)。有没有办法,我可以要求机器人使用现有的浏览器实例而不是打开新的?

如何让机器人以一定的缩放级别打开 Firefox 浏览器?

标签: firefoxrobotframeworkgeckodriver

解决方案


运行脚本时看不到设置有效的原因是 Selenium 在启动浏览器时创建了一个新配置文件。

您在浏览器中所做的任何更改、您添加的任何扩展都存储在您的用户配置文件中。Selenium 使用干净/香草(如:具有默认设置)配置文件,因此您的测试环境始终是干净的 - 不受您可能在日常工作中添加的自定义、扩展、缓存资源的影响。

如果您想在Selenium浏览器会话中更改特定设置,请在带有 Robotframework 的 Firefox 下 - 您“很幸运”:)。它附带的 SeleniumLibrary 支持使用预先设置的配置文件启动浏览器 -请参阅文档,Open Browser 关键字- 它有一个参数ff_profile_dir
因此,创建一个 FF 配置文件,将您的设置设置为您需要的值(我看不出它不会存储在那里的原因),并将其目录作为参数传递给Open Browser关键字。因此,当 Selenium 创建浏览器实例时,它将使用此配置文件,并且该设置有效。


推荐阅读