firefox - geckodriver 打开的浏览器没有使用默认设置来运行机器人脚本
问题描述
我已将 Firefox 中的 layout.css.devPixelsPerPx 设置为 0.9(打开一个新选项卡,输入“about:config”并按 Enter),因为我希望以一定程度的缩放比例打开浏览器。当我手动打开浏览器时,它工作正常。
但是当我运行机器人脚本时,它会打开浏览器并放大而不是上面已经设置的浏览器。
到目前为止,除了上述之外,我已经尝试了以下选项 - 1. 尝试使用设置默认缩放级别的 Firefox 扩展,但 Geckodriver 打开的浏览器没有该扩展可用。2. 运行 Cntrl+- 缩小,但是一旦 url 改变,缩放就会重置为 100% 3. 我可以用命令打开浏览器(它设置了正确的缩放级别)。有没有办法,我可以要求机器人使用现有的浏览器实例而不是打开新的?
如何让机器人以一定的缩放级别打开 Firefox 浏览器?
解决方案
运行脚本时看不到设置有效的原因是 Selenium 在启动浏览器时创建了一个新配置文件。
您在浏览器中所做的任何更改、您添加的任何扩展都存储在您的用户配置文件中。Selenium 使用干净/香草(如:具有默认设置)配置文件,因此您的测试环境始终是干净的 - 不受您可能在日常工作中添加的自定义、扩展、缓存资源的影响。
如果您想在Selenium浏览器会话中更改特定设置,请在带有 Robotframework 的 Firefox 下 - 您“很幸运”:)。它附带的 SeleniumLibrary 支持使用预先设置的配置文件启动浏览器 -请参阅文档,Open Browser 关键字- 它有一个参数ff_profile_dir
。
因此,创建一个 FF 配置文件,将您的设置设置为您需要的值(我看不出它不会存储在那里的原因),并将其目录作为参数传递给Open Browser
关键字。因此,当 Selenium 创建浏览器实例时,它将使用此配置文件,并且该设置有效。
推荐阅读
- python - Python和C#之间的双向通信
- r - 正确使用 R 中的管道操作
- database - 如何在同一个电子表格中使用多个脚本?
- angular - 自定义表单控件不适用于 ControlValueAccessor 的角度
- snowflake-cloud-data-platform - 流列 METADATA$ACTION 字段的长度差异
- c++ - 如何正确从水平数组垂直读取数据?
- sql-server - MSOLEDBSQL_ENUMERATOR 接口是否损坏或者我做错了?
- python - 尝试连接时“尝试对不是套接字的东西进行操作”
- node.js - node-loader 不处理 node_modules 文件
- node.js - 如何为 NodeJS 无服务器框架设置 swaggerUI?