簡體   English   中英

錯誤:產生未知

[英]Error: spawn UNKNOWN

我正在嘗試按照https://docs.angularjs.org/tutorial 上的教程進行操作,但運行命令時出錯

npm run protractor

這是控制台日志:

Microsoft Windows [版本 6.1.7601] 版權所有 (c) 2009 Microsoft Corporation。 版權所有。

C:\\GIT\\angular-practices\\angular-phonecat>npm 運行量角器

angular-phonecat@0.0.0 preprotractor C:\\GIT\\angular-practices\\angular-phonecat npm run update-webdriver

angular-phonecat@0.0.0 preupdate-webdriver C:\\GIT\\angular-practices\\angular-phonecat npm install

angular-phonecat@0.0.0 postinstall C:\\GIT\\angular-practices\\angular-phonecat bower install

angular-phonecat@0.0.0 update-webdriver C:\\GIT\\angular-practices\\angular-phonecat webdriver-manager 更新

Selenium Standalone 是最新的。 chromedriver 是最新的。

angular-phonecat@0.0.0 量角器 C:\\GIT\\angular-practices\\angular-phonecat 量角器測試/量角器-conf.js

util.puts:使用console.log代替直接使用ChromeDriver...錯誤:在exports.spawn( child_process.js:995:9) 在 C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\node_modules\\selenium-webdriver\\remote\\index.js:173:23 在 C:\\GIT\\angular-practices \\angular-phonecat\\node_modules\\protractor\\node_modules\\selenium-webdriver\\lib\\goog\\base.js:1243:15 在 [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (C:\\GIT\\angular-practices\\angular -phonecat\\node_modules\\protractor\\node_modules\\selenium-webdriver\\lib\\webdriver\\prom ise.js:1539:20) 在通知 (C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\node_modules\\selenium- webdriver\\lib\\webdriver\\promise.js:362:12) 在 [object Object].then (C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\node_modules\\selenium-webdriver\\lib\\webdriver\\promise .js:414:7) 在 Object.webdriver.promise.when (C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\node_modules\\selenium-webdriver\\lib\\webdriver\\promise.js:639:18) 在 C:\\GIT\\angular-practices\\angular-phonecat\\ node_modules\\protractor\\node_modules\\selenium-webdriver\\remote\\index.js:172:20 ==== 異步任務 ==== WebDriver.createSession() 在 Function.webdriver.WebDriver.acquireSession_ (C:\\GIT\\angular-實踐\\angular-phonecat\\node_modules\\protractor\\node_modules\\selenium-webdriver\\lib\\webdriver\\webdriver.js:131:49) 在 Function.webdriver.WebDriver.createSession (C:\\GIT\\angular-practices\\angular-phonecat\\ node_modules\\protractor\\node_modules\\selenium-webdriver\\lib\\webdriver\\webdriver.js:111:30)在 Object.createDriver (C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\node_modules\\selenium-webdriver\\ chrome.js:460:30) 在 ChromeDriverProvider.getDriver (C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\lib\\driverProviders\\chrome.js:67:27) 在 C:\\GIT\\angular-實踐\\angular-phonecat\\node_modules \\protractor\\lib\\runner.js:221:35 at _fulfilled (C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\node_modules\\q\\q.js:797:54) at self.promiseDispatch.done (C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\node_modules\\q\\q.js:826:30) at Promise.promise.promiseDispatch (C:\\GIT\\angular-practices\\angular-phonecat\\ node_modules\\protractor\\node_modules\\q\\q.js:759:13) 在 C:\\GIT\\angular-practices\\angular-phonecat\\node_modules\\protractor\\node_modules\\q\\q.js:525:49

你能告訴我問題出在哪里嗎?

這是我的量角器 conf.js:

exports.config = {
  allScriptsTimeout: 11000,

  specs: [
    'e2e/*.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  chromeOnly: true,

  baseUrl: 'http://localhost:8000/',

  framework: 'jasmine',

  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000
  }
};

對於使用 Mac 並收到此錯誤的用戶,以下未解決的問題可能會導致此問題: https : //github.com/angular/webdriver-manager/issues/476

解決方案由 ciekawy 提供。

node_modules/webdriver-manager/built/lib/files/file_manager.js

node_modules/protractor/webdriver-manager/built/lib/files/file_manager.js

在第 166 行添加以下代碼:

fileUrl.url = fileUrl.url.replace(/_m1/, '');

然后,您需要更新 chrome 驅動程序以獲取更改。 如果使用 NRWL 的 NX monorepo 管理工具:

npx webdriver-manager clean
npx webdriver-manager update --gecko=false --versions.chrome=<version from chrome://versions>

在您的 conf.js 文件中更改為chromeOnly: false

exports.config = {
  allScriptsTimeout: 11000,

  specs: [
    'e2e/*.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  chromeOnly: false,

  baseUrl: 'http://localhost:8000/',

  framework: 'jasmine',

  jasmineNodeOpts: {
    defaultTimeoutInterval: 30000
  }
};

你可以在這里找到類似的問題#176

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM