【问题标题】:Protractor in STS IDE -> Could not find update-config.jsonSTS IDE 中的量角器 -> 找不到 update-config.json
【发布时间】:2017-07-14 13:43:28
【问题描述】:

目前我有 Protractor v.5.1.1,Node.js v.6.10.0

所有量角器测试都在窗口控制台中工作,但是当我尝试从 STS IDE 运行它们时,我得到以下错误。当然我做了'webdriver-manager update',但它根本没有帮助。有谁知道如何解决这个问题?

分别在我使用或不使用'directConnect'时出现错误

[22:21:48] I/launcher - Running 1 instances of WebDriver
[22:21:48] I/direct - Using ChromeDriver directly...
[22:21:48] E/direct - Error code: 135
[22:21:48] E/direct - Error message: Could not find update-config.json. Run    'webdriver-manager update' to download binaries.
[22:21:48] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
at IError  (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:5:1)
at ProtractorError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:10:9)
at BrowserError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:51:9)
at Direct.getNewDriver (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\direct.js:62:31)
at Runner.createBrowser (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:194:43)
at q.then.then (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:338:29)
at _fulfilled (D:\STS_workspace\jgh\node_modules\q\q.js:834:54)
at self.promiseDispatch.done (D:\STS_workspace\jgh\node_modules\q\q.js:863:30)
at Promise.promise.promiseDispatch (D:\STS_workspace\jgh\node_modules\q\q.js:796:13)
at D:\STS_workspace\jgh\node_modules\q\q.js:556:49
[22:21:48] E/launcher - Process exited with error code 135

[21:19:23] I/launcher - Running 1 instances of WebDriver
[21:19:23] E/local - Error code: 135
[21:19:23] E/local - Error message: No update-config.json found. Run    'webdriver-manager update' to download binaries.
[21:19:23] E/local - Error: No update-config.json found. Run 'webdriver- manager update' to download binaries.
   at IError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:5:1)
   at ProtractorError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:10:9)
   at BrowserError (D:\STS_workspace\jgh\node_modules\protractor\built\exitCodes.js:51:9)
   at Local.addDefaultBinaryLocs_ (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\local.js:40:23)
   at Local.setupDriverEnv (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\local.js:81:14)
   at Local.setupEnv  (D:\STS_workspace\jgh\node_modules\protractor\built\driverProviders\driverProvider.js:110:34)
   at q.then (D:\STS_workspace\jgh\node_modules\protractor\built\runner.js:334:41)
   at _fulfilled (D:\STS_workspace\jgh\node_modules\q\q.js:834:54)
   at self.promiseDispatch.done    (D:\STS_workspace\jgh\node_modules\q\q.js:863:30)
   at Promise.promise.promiseDispatch     (D:\STS_workspace\jgh\node_modules\q\q.js:796:13)
[21:19:23] E/launcher - Process exited with error code 135

我的 conf.js 看起来像:

var SpecReporter = require('jasmine-spec-reporter').SpecReporter;

exports.config = {
  //    directConnect:true,
  specs: ['spec4.js'],
 framework: 'jasmine2' ,

 onPrepare: function () {
  jasmine.getEnv().addReporter(new SpecReporter({
  spec: {
    displayStacktrace: true,
    displaySuccessesSummary: true,
    displayFailuresSummary: true,  
    displayPendingSummary: true,
    displaySpecDuration: true,     
      },

    }));
  },

  jasmineNodeOpts: {
    defaultTimeoutInterval: 25000,
    print: function () {},
},

我在 node_modules/protractor/node_modules/webdriver-manager 路径中没有 selenium 文件夹,但我在 package.json 中添加了“webdriver-update”:“webdriver-manager update”。 这是 npm run webdriver-update 的输出:

    D:\STS_workspace\jgh>npm run webdriver-update
    npm WARN invalid config proxy="http:"  
    npm WARN invalid config Must be a full url with 'http://'
    npm WARN invalid config proxy="http:"
    npm WARN invalid config Must be a full url with 'http://'
    npm ERR! Windows_NT 10.0.14393
    npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program     Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "webdriver-update"
    npm ERR! node v6.10.0
    npm ERR! npm  v3.10.10
    npm ERR! path D:\STS_workspace\jgh\package.json
    npm ERR! code ENOENT
    npm ERR! errno -4058
    npm ERR! syscall open
    npm ERR! enoent ENOENT: no such file or directory, open 'D:\STS_workspace\jgh\package.json'
    npm ERR! enoent ENOENT: no such file or directory, open 'D:\STS_workspace\jgh\package.json'
    npm ERR! enoent This is most likely not a problem with npm itself
    npm ERR! enoent and is related to npm not being able to find a file.
    npm ERR! enoent

npm ERR! Please include the following file with any support request:
npm ERR!     D:\STS_workspace\jgh\npm-debug.log

【问题讨论】:

  • npm run webdriver-update 的脚本是什么?根本问题是您没有下载二进制文件。
  • 刚开始也看到这个..你解决了吗?
  • 顺便说一句,我解决了我的问题。事实证明,如果我添加:npm set unsafe-perm=true 我的场景有效。我不知道这是否与您的情况相同。让我知道,如果是,我会发布答案。

标签: javascript json protractor webdriver webdriver-manager


【解决方案1】:

您的配置文件中似乎正在使用directConnect 或使用local 驱动程序提供程序(没有seleniumAddressdirectConnect)启动。你需要运行webdriver-manager update

以前我有额外的标志不能使用webdriver-manager update --standalone false --gecko false 下载独立或壁虎。如果您从本地驱动程序提供商开始,则不再是这种情况。您将需要 selenium 独立 jar 文件。

您可以使用 package.json 中的脚本运行它。比如:

"scripts": {
  "webdriver-update": "webdriver-manager update"
}

然后使用:npm run webdriver-update 执行此操作。你如何检查二进制文件是否存在?在您的项目中,导航至node_modules/protractor/node_modules/webdriver-manager/selenium/。这是update-config.json 和您下载的二进制文件所在的位置。

【讨论】:

  • -> 不幸的是,这不是我的问题。我不使用直接连接。无论如何尝试了你的想法,但仍然没有帮助:(
  • 您正在使用直接连接,因为它在您的错误日志中如此说明。也许您应该将配置文件添加到您的问题中
  • Okej,对不起,我的错误很抱歉,因为我曾经使用过并且曾经不是'directConnection',但无论如何我仍然收到错误:(我更新了我的问题 - 请你熟悉它吗?
  • 上述答案对我有用,即使我处于不同但相似的情况。即使在多次运行“webdriver-manager update”之后,调用“npm test”也失败并出现同样的错误。但是直接从命令行调用“protractor config.js”成功。原因与此处描述的根本原因相同:npm 必须运行“webdriver-manager update”才能在本地项目的 node_modules 文件夹中本地获取 selenium 文件。当直接运行“webdriver-manager update”时,它只全局安装了 selenium 文件。
  • 是的,调用 npm test 需要 Protractor 是 package.json 中的一个节点依赖项。如果 Protractor 是全局安装的,而不是 package.json 的一部分,这将不起作用,因为 Protractor 不是本地 node_modules 文件夹的一部分
【解决方案2】:

您只需要运行此命令并修复它 - npm run webdriver-update 它会在 node_modules/protractor 下的 node_modules 部分中更新您的 webdriver。

这两行是罪魁祸首。只需尝试运行该命令,它应该可以解决您的问题。

[22:21:48] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[22:21:48] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.

希望有帮助!

【讨论】:

    【解决方案3】:

    在 MacOS 上,我通过将 seleniumAddress 添加到我的 Protractor 配置文件中解决了这个错误(我之前使用的是 directConnect,所以将其注释掉):

    // directConnect: true,
    // baseUrl: 'http://localhost:4000/',
    seleniumAddress: 'http://localhost:4444/wd/hub/',
    

    我现在通过运行以下命令启动 Protractor 服务器:$ webdriver-manager start

    在另一个终端窗口中,我开始测试:$ ng e2e

    【讨论】:

      【解决方案4】:

      你可以尝试这样更新,它肯定会在 node_modules/protractor 中更新:

      $ ./node_modules/protractor/bin/webdriver-manager update
      

      【讨论】:

      • 这是我在 OSX 上的 Protractor 框架中唯一适合我的解决方案。
      【解决方案5】:

      只需在您的项目文件夹中使用npx 命令执行webdriver-manager

      npx webdriver-manager update
      

      【讨论】:

      • 感谢@Yildiray-Meric 是唯一有效的解决方案!
      【解决方案6】:

      当我在 Windows 10 中安装 Java 并更新 Java 路径时,问题得到了解决。

      【讨论】:

        【解决方案7】:

        就我而言

        npm run webdriver-manager update
        

        仅更新 app\node_modules\webdriver-manager 而不是 app\node_modules\protractor\node_modules\webdriver-manager\。无论我是直接从控制台还是作为 package.json 脚本运行该命令。 我不得不跑

        npx webdriver-manager update
        

        app\node_modules\protractor\node_modules\webdriver-manager\内。

        另一个解决方案是这个脚本:

        "postinstall": "node ./node_modules/protractor/node_modules/webdriver-manager update"
        

        【讨论】:

          【解决方案8】:

          有了这个,我可以继续前进 节点 node_modules/protractor/bin/webdriver-manager 更新

          【讨论】:

            【解决方案9】:

            我直接在里面运行了 npx webdriver-manager update 命令

            $\node_modules\protractor\bin 并开始按预期工作。

            遍历您的 e2e 中的上述文件夹并运行命令。

            【讨论】:

              猜你喜欢
              • 2019-03-08
              • 1970-01-01
              • 2018-09-23
              • 2015-01-31
              • 2022-07-30
              • 2013-10-23
              • 1970-01-01
              • 2018-08-30
              • 2015-11-03
              相关资源
              最近更新 更多