javascript - Selenium WebDriver — 启动 Chrome,并在控制台面板中打开 DevTools

标签 javascript selenium-webdriver

我知道如何在打开 DevTools 的情况下启动 Chrome,所以不要告诉我它与 How to open Chrome Developer console in Selenium WebDriver using JAVA 重复。


我正在尝试将 DevTools 打开到特定面板。默认情况下,它在 Elements 面板上打开,但我希望它在 Console 面板上打开:

enter image description here

我见过这个命令行开关--devtools-flags,但我还没有找到它的任何示例用法。本质上我想要实现的目标与此类似。显然这不起作用,但你明白了要点:

const { Options } = require('selenium-webdriver/chrome');
// …
const options = new Options().addArguments([
  'auto-open-devtools-for-tabs',
  'devtools-flags="panel=console"' /* <- That doesn't work. What else would?  */
]);
// …

最佳答案

我想出了如何为使用 RSpec 和 Capybara 的 Ruby on Rails 应用程序执行此操作。下面是我用来配置 Capybara 驱动程序以选择“控制台”选项卡并将开发工具停靠在底部的代码:

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

...

Capybara::Selenium::Driver.new(
  app,
  browser: :chrome,
  options: options,
  desired_capabilities: capabilities,

您应该能够调用setUserPreferences函数来设置用户首选项:https://www.selenium.dev/selenium/docs/api/javascript/module/selenium-webdriver/chrome_exports_Options.html#setUserPreferences

const { Options } = require('selenium-webdriver/chrome');
// …
const options = new Options().addArguments([
  "auto-open-devtools-for-tabs"
]).setUserPreferences({
  "devtools": {
    "preferences": {
      "panel-selectedTab": "\"console\""
      // "currentDockState": "\"bottom\"" // Or "\"undocked\"", "\"right\"", etc.
    }
  }
});

(我还没有针对 JS 进行过测试,所以请尝试一下并告诉我是否有效。)

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

您可以在 devtools => preferences 下查看所有可能的设置。请注意,所有值都是解析为 JSON 的字符串,因此您需要“双重包装”代码中的任何字符串,例如“\”控制台\“”

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

关于javascript - Selenium WebDriver — 启动 Chrome,并在控制台面板中打开 DevTools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69301897/

相关文章:

java - 当在类属性中给出禁用时,如何在 Selenium 中查找元素是否被禁用

java - 有没有办法记录最小化浏览器窗口的截图

java - WebDriver 切换到点击按钮后打开的浏览器

java - 创建 Firefox 配置文件并关闭木偶

javascript - 设置 facebook 登录时遇到问题

javascript - Vue 路由器 beforeEnter 与 beforeEach

javascript - 将 css 文件注入(inject)到使用 HtmlWebpackPlugin 生成的 html 文件的头部

javascript - 了解onclick以及如何将其添加到li的

javascript - 理解一段简单的 JS 代码 - 函数 -

python - 从上到下向下滚动页面