首页 > 解决方案 > chromedriver 未知错误:无法为用户数据目录创建临时目录 (80.0.3987.16)

问题描述

> web-frontend@0.0.0 e2e-ci /web-frontend
> ng e2e --webdriverUpdate=false --port=4300 --protractor-config=./e2e/protractor-ci.conf.js

10% building 3/3 modules 0 activeℹ 「wds」: Project is running at http://localhost:4300/webpack-dev-server/
ℹ 「wds」: webpack output is served from /
ℹ 「wds」: 404s will fallback to //index.html

chunk {main} main.js, main.js.map (main) 1.39 MB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 264 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.15 kB [entry] [rendered]
chunk {scripts} scripts.js, scripts.js.map (scripts) 165 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 1010 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 4.88 MB [initial] [rendered]
Date: 2020-03-05T12:28:12.148Z - Hash: 75bd0b8fbe9398ef6f81 - Time: 15310ms
** Angular Live Development Server is listening on localhost:4300, open your browser on http://localhost:4300/ **
ℹ 「wdm」: Compiled successfully.
[12:28:12] I/launcher - Running 1 instances of WebDriver
[12:28:12] I/direct - Using ChromeDriver directly...
[12:28:12] E/launcher - unknown error: cannot create temp dir for user data dir
  (Driver info: chromedriver=80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}),platform=Linux 5.3.0-40-generic x86_64)
[12:28:12] E/launcher - WebDriverError: unknown error: cannot create temp dir for user data dir
  (Driver info: chromedriver=80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}),platform=Linux 5.3.0-40-generic x86_64)
    at Object.checkLegacyResponse (/web-frontend/node_modules/selenium-webdriver/lib/error.js:546:15)
    at parseHttpResponse (/web-frontend/node_modules/selenium-webdriver/lib/http.js:509:13)
    at /web-frontend/node_modules/selenium-webdriver/lib/http.js:441:30
    at processTicksAndRejections (internal/process/task_queues.js:94:5)
From: Task: WebDriver.createSession()
    at Function.createSession (/web-frontend/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
    at Function.createSession (/web-frontend/node_modules/selenium-webdriver/chrome.js:761:15)
    at Direct.getNewDriver (/web-frontend/node_modules/protractor/built/driverProviders/direct.js:77:33)
    at Runner.createBrowser (/web-frontend/node_modules/protractor/built/runner.js:195:43)
    at /web-frontend/node_modules/protractor/built/runner.js:339:29
    at _fulfilled (/web-frontend/node_modules/q/q.js:834:54)
    at /web-frontend/node_modules/q/q.js:863:30
    at Promise.promise.promiseDispatch (/web-frontend/node_modules/q/q.js:796:13)
    at /web-frontend/node_modules/q/q.js:556:49
    at runSingle (/web-frontend/node_modules/q/q.js:137:13)
[12:28:12] E/launcher - Process exited with error code 199
events.js:200
      throw er; // Unhandled 'error' event
      ^

Error: spawn ps ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:81:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:81:21) {
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn ps',
  path: 'ps',
  spawnargs: [ '-o', 'pid', '--no-headers', '--ppid', 653 ]
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! web-frontend@0.0.0 e2e-ci: `ng e2e --webdriverUpdate=false --port=4300 --protractor-config=./e2e/protractor-ci.conf.js`
npm ERR! Exit status 1

我正在尝试在部署前端的 docker 容器内运行 e2e 测试。我收到此错误消息。我已经在量角器配置中使用args: ['--headless', '--no-sandbox', '--disable-extensions']--disable-gpu使其工作。这些组合都不起作用。

有人可以告诉我出了什么问题吗?

标签: angulardockerselenium-chromedrivergoogle-chrome-headlessangularjs-e2e

解决方案


推荐阅读