【问题标题】:How to disable cookies when running Selenium + Headless Chrome in RSpec在 RSpec 中运行 Selenium + Headless Chrome 时如何禁用 cookie
【发布时间】:2019-11-24 10:18:45
【问题描述】:

背景:

我目前正在使用 RSpec + Capybara 为 Rails 项目编写测试。我们使用 Selenium + Headless Chrome 来模拟浏览器交互。

问题:

我想禁用浏览器 cookie 进行测试。我们目前正在 spec/spec_helper.rb 中以这种方式实例化 Web 驱动程序


chrome_capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
  chromeOptions: {
    w3c: false,
    args: %w[headless no-sandbox window-size=1280,2000 no-proxy-server disable-gpu disable-dev-shm-usage],
  },
  loggingPrefs:{browser: 'ALL'},
)

Capybara.register_driver :headless_chrome do |app|
  Capybara::Selenium::Driver.new(app, 
    browser: :chrome, 
    desired_capabilities: chrome_capabilities
  )
end

我见过很多 Java examples 在实例化 Headless Chrome 时通过传递此设置来禁用 cookie:"profile.default_content_setting_values.cookies" => 2

但是,我无法开始工作。

有人知道实例化无头 Chrome 实例以禁用 cookie 的正确方法吗?

【问题讨论】:

    标签: ruby-on-rails ruby selenium rspec-rails google-chrome-headless


    【解决方案1】:

    这取决于您的 chromedriver 版本。在发布 2.31 开发人员更改:

    Feature request: change chromeOptions to goog:chromeOptions
    

    所以现在它看起来像:

      caps = Selenium::WebDriver::Remote::Capabilities.chrome(
        'goog:chromeOptions' => {
          'args' => [
            '--lang=en',
            '--no-default-browser-check',
            '--start-maximized',
            '--no-sandbox'
          ],
          'prefs' => { 
              "profile.default_content_settings.cookies" => 2 } 
            }
          }
        }
      )
    

    试一试!

    【讨论】:

      猜你喜欢
      • 2019-05-08
      • 2020-05-13
      • 2020-03-21
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      相关资源
      最近更新 更多