选择使用 Selenium 的 Microsoft Edge 上的默认配置文件(未创建会话:DevToolsActivePort 文件不存在)

Selecting the Default profile on Microsoft Edge with Selenium (session not created: DevToolsActivePort file doesn't exist)

提问人:BrunoLM 提问时间:11/7/2023 更新时间:11/7/2023 访问量:65

问:

我有以下代码:

import { Builder } from 'selenium-webdriver'
import edge from 'selenium-webdriver/edge'

export async function getBrowserDriver() {
  const browser = 'MicrosoftEdge'

  const edgeOptions = new edge.Options()
  edgeOptions.addArguments(`--user-data-dir=C:\\Users\\bruno\\AppData\\Local\\Microsoft\\Edge\\User Data\\`)
  edgeOptions.addArguments('--profile-directory=Default')
  edgeOptions.addArguments('--disable-dev-shm-usage')
  edgeOptions.addArguments('--no-sandbox')
  // edgeOptions.addArguments('--disable-dev-tools')
  // edgeOptions.addArguments('--remote-debugging-port=9222')


  return new Builder()
    .forBrowser(browser)
    .setEdgeOptions(edgeOptions)
    .build()
}

如果我将所有内容交换为使用 Chrome,这就会起作用,一切正常。但是,当我尝试使用 Edge 进行完全相同的操作时,我遇到了以下错误:

SessionNotCreatedError: session not created: Microsoft Edge failed to start: exited normally.
  (session not created: DevToolsActivePort file doesn't exist)
  (The process started from msedge location C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe is no longer running, so msedgedriver is assuming that msedge has crashed.)
    at Object.throwDecodedError (C:\BrunoLM\Projects\x\app\node_modules\selenium-webdriver\lib\error.js:524:15)
    at parseHttpResponse (C:\BrunoLM\Projects\x\app\node_modules\selenium-webdriver\lib\http.js:601:13)
    at Executor.execute (C:\BrunoLM\Projects\x\app\node_modules\selenium-webdriver\lib\http.js:529:28)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

我看到了使用建议,而且,人工智能甚至建议。没有任何效果。我尝试了几种组合,但要么收到此错误,要么收到错误,说它甚至无法到达 chrome。--disable-dev-shm-usage--no-sandbox--disable-dev-tools

AI 还建议我安装并运行.我也试过,但没什么区别。npm install -g webdriver-managerwebdriver-manager update

我下载了msedgedriver.exe,我想我能够将它与selenium连接起来

    const driver = new Builder()
    .forBrowser('MicrosoftEdge')
    .usingServer('http://localhost:9515').setEdgeOptions(edgeOptions).build()

    return driver

我确实看到了一些日志:

Starting Microsoft Edge WebDriver 119.0.2151.44 (x) on port 9515
To submit feedback, report a bug, or suggest new features, please visit https://github.com/MicrosoftEdge/EdgeWebDriver

Only local connections are allowed.
Please see https://aka.ms/WebDriverSecurity for suggestions on keeping Microsoft Edge WebDriver safe.

Microsoft Edge WebDriver was started successfully.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.
Opening in existing browser session.

但不管我尝试什么,它最终都会:

DevToolsActivePort file doesn't exist

它打开了一个浏览器窗口,但它崩溃了,我打开了窗口,但根本无法访问它。

是我做错了什么,还是驱动程序或 Edge 有问题?有什么办法可以解决吗?也许降级一些东西?

javascript selenium-web驱动程序

评论


答: 暂无答案