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

时间:2015-12-17 08:10:52

标签: ruby google-chrome watir-webdriver

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

我没有处理代码来处理这类事情,而是更喜欢用我指定的设置生成一个实例,但我找不到如何做到这一点。

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

Watir Webdriver 0.9.1

2 个答案:

答案 0 :(得分:3)

上述工作但我发现有时候不会总是选择配置文件设置。另一种方法是使用chrome的命令行开关。

您可以像这样添加它们:

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

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

要注意:并非所有这些开关都可以使用当前版本的chrome。

答案 1 :(得分: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网络驱动程序没有此功能 您可以为您的配置文件夹解析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首选项结构可以更改,不在文档中描述)