在 selenium webdriver 中将 chrome 'devtools.open_docked' 设置为 false

Mit*_*uyn 5 selenium capybara google-chrome-devtools selenium-chromedriver

我希望在将 selenium 与水豚一起使用时,chrome 开发工具能够与窗口分离地打开。

当前 devtools 连接到右侧(默认)。

我正在使用以下代码:

Capybara.register_driver :chrome do |app|
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    chromeOptions: { 
      args: %w[auto-open-devtools-for-tabs], # <- this works!
      prefs: {'devtools.open_docked' => false} # <- has no effect!
      # also tried {devtools: {open_docked: false}}
      }
  )
  Capybara::Selenium::Driver.new(
    app, browser: :chrome, desired_capabilities: capabilities
  )
end
Run Code Online (Sandbox Code Playgroud)

ndb*_*ent 2

以下是如何为 Capybara 配置 Chrome 首选项,以便默认情况下取消固定开发工具。您还可以配置您想要选择的默认选项卡(我希望“控制台”选项卡默认处于活动状态。)

options = Selenium::WebDriver::Chrome::Options.new
options.add_preference(
  'devtools',
  'preferences' => {
    'currentDockState' => '"undocked"', # Or '"bottom"', '"right"', etc.
    'panel-selectedTab' => '"console"',
  }
)

...

Capybara::Selenium::Driver.new(
  app,
  browser: :chrome,
  options: options,
  desired_capabilities: capabilities,
Run Code Online (Sandbox Code Playgroud)

我通过查看了解了如何设置这些首选项~/Library/Application Support/Google/Chrome/Default/Preferences。这是我的主要 Google Chrome 安装存储我的用户首选项的位置,它是 JSON 数据。

devtools您可以在=>下查看所有可能的设置preferences。请注意,所有值都是解析为 JSON 的字符串,因此您需要“双重包装”代码中的所有字符串:'"undocked"'

您可以打开主 Google Chrome 浏览器并更改 UI 中的设置,然后重新打开首选项文件以查看需要设置的 JSON。