我正在尝试运行测试(黑猩猩/),昨天有工作,今天没有。这是黑猩猩的配置:

module.exports = {
  // - - - - CHIMP - - - -
  watch: false,
  watchWithPolling: false,
  sync: true,

  // - - - - WEBDRIVER-IO  - - - -
  webdriverio: {
    coloredLogs: true,
    logLevel: 'silent',
    screenshotPath: './tests/logs/screenshots',
    waitforTimeout: 20000,
    waitforInterval: 250
  },

  // - - - - MOCHA  - - - -
  mocha: true,
  mochaConfig: {
    timeout: 20000,
  },
  chai: true,
  // path: './tests/spec',
  path: './tests/spec/shop/configurator/products',
  format: 'dot',

 // - - - - SELENIUM  - - - -
  browser: 'chrome',
  platform: 'ANY',
  name: '',
  user: '',
  key: '',
  port: null,
  host: null,

  // - - - - METEOR  - - - -
  ddp: 'http://localhost:3000',
  serverExecuteTimeout: 20000,

  // - - - - PHANTOM  - - - -
  phantom_w: 1920,
  phantom_h: 1280
};


这是报告输出,在第一次测试甚至开始之前就失败了。

[chimp] Running...


  Configurator @watch
    1) "before all" hook


  0 passing (10s)
  1 failing

  1) Configurator @watch "before all" hook:
     Uncaught unknown error: cannot determine loading status
from unknown error: missing or invalid 'entry.level'


在浏览器堆栈中运行时,它可以工作。这是browserstack配置:

var browserstack = require('browserstack-local');
var bs_local = new browserstack.Local();
var bs_local_args = {/* ... */};

// starts the Local instance with the required arguments
bs_local.start(bs_local_args, function () {
    console.log("Started BrowserStackLocal");
});

module.exports = {
    // - - - - CHIMP - - - -
    watch: false,
    watchWithPolling: false,
    sync: true,

    // - - - - WEBDRIVER-IO  - - - -
    webdriverio: {
        baseUrl: 'http://localhost:3000',
        coloredLogs: true,
        desiredCapabilities: {
            os: 'OS X',
            os_version: 'El Capitan',
            browser: 'Chrome',
            browser_version: '58.0',
            resolution: '1280x1024',
            project: 'project',
            build: 'build',
            'browserstack.local': true
        },
        logLevel: 'silent',
        screenshotPath: './tests/logs/screenshots',
        waitforTimeout: 50000,
        waitforInterval: 250
    },

    // - - - - MOCHA  - - - -
    mocha: true,
    mochaConfig: {
        timeout: 60001,
    },
    chai: true,
    path: './tests/spec',
    format: 'dots',

    // - - - - Screenshots - - - -
    screenshotsOnError: true,
    screenshotPath: './tests/logs/screenshots',
    captureAllStepScreenshots: false,
    saveScreenshotsToDisk: true,
    saveScreenshotsToReport: false,

    // - - - - SELENIUM  - - - -
    name: 'project',
    browser: 'Chrome',
    user: '...',
    key: '...',
    host: 'hub.browserstack.com',
    port: 80,

    // - - - - METEOR  - - - -
    ddp: 'http://localhost:3000',
    serverExecuteTimeout: 30000,

    // - - - - PHANTOM  - - - -
    phantom_w: 1280,
    phantom_h: 1024
};


我试图解决的问题是更新黑猩猩(0.50.2),重新安装node_modules,使用firefox运行它,没有任何帮助。我在不同的环境(OS / Ubuntu 16.04)中尝试过,结果是相同的。

最佳答案

黑猩猩对您隐藏了许多硒配置。例如,它会在安装时为您下载驱动程序二进制文件。但是,您的本地环境通常比这要复杂一些。您应该检查的第一件事是-浏览器是否在未注意到的情况下更新了其版本。如果您没有锁定您的browser-driver-chimp版本,则实际上会发生这种情况。到目前为止,我可以看到您用于云运行:

 browser: 'Chrome',
 browser_version: '58.0',


这似乎可行。因此,最好将其版本明确锁定(包括禁用浏览器更新)。我也没有在0.50.2看到黑猩猩本身的重大变化。

检查兼容的驱动程序浏览器版本的一种方法是浏览ChromeDriver的当前发行说明。万一这仍然无济于事-降级驱动程序或浏览器对,直到它起作用。
看起来您需要使用该Chrome版本的ChromeDriver v2.31 (2017-07-21),而黑猩猩则是pinned to 2.28

几次我不得不自己玩猜谜游戏,直到再次发挥作用。

关于selenium - 黑猩猩测试停止工作,并引发错误:缺少或无效的“entry.level”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47727311/

10-12 21:10