使用 Watir 时如何保存 Chrome 的设置?

How to save Chrome's settings when using Watir?

Chrome 正在打断流程并询问我(用户)是否要允许当前站点发送桌面通知。我尝试在 Chrome 的高级设置页面中更改此设置,但每次 Watir 实例化一个新的浏览器实例时,所有设置都恢复为默认设置。

与其处理代码来处理此类事情,我更愿意使用我指定的设置生成一个实例,但我找不到如何执行此操作。

非常感谢任何对此的帮助或见解。

Watir Webdriver 0.9.1

当您 运行 在临时目录中进行 Watir 测试时,使用默认设置创建了新的空配置文件

/tmp/.com.google.Chrome.couple_random_characters/Default

Firefox 的网络驱动程序可以使用您的配置文件:

require 'watir-webdriver'

default_profile = Selenium::WebDriver::Firefox::Profile.from_name "default"
browser = Watir::Browser.new :firefox, :profile => default_profile

Chrome web-driver 没有这个功能 您可以为您的配置文件夹解析 Chrome 首选项文件 (https://www.chromium.org/user-experience/user-data-directory)

在 Linux 首选项文件路径中:

/home/your_name/.config/google-chrome/Default/Preferences

require 'watir-webdriver'

prefs_hash = {
#chrome preference what you need
#for example:
    'profile' => {
        'default_content_setting_values' => {'automatic_downloads' => 1}
    }
}
browser = Watir::Browser.new :chrome, :prefs => prefs_hash

(...chrome 首选项结构可以更改且不在文档中描述)

上面的方法有效,但我发现有时配置文件设置并不总是有效。另一种方法是使用 chrome 的命令行开关。

您可以像这样添加它们:

b = Watir::Browser.new :chrome, :switches => %w[--disable-notifications]

可以在此处找到所有命令行开关的完整列表。 http://peter.sh/experiments/chromium-command-line-switches/

注意:并非所有这些开关都适用于当前版本的 chrome。