【问题标题】:What line is causing this Protractor error?哪条线导致这个量角器错误?
【发布时间】:2015-03-12 01:20:10
【问题描述】:

量角器有没有办法在控制台日志中显示错误发生在哪一行?我只是收到这种类型的消息:

Message:
    Failed: Cannot call method 'click' of undefined
  Stack:
    Error: Failed: Cannot call method 'click' of undefined
        at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:104:16
        at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15
        at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)
        at notify (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:465:12)

1 spec, 1 failure

很难弄清楚我是否有这么多的点击命令。我正在运行 Protractor 1.8.0。

这是我的protractor.conf.js

exports.config = {
  framework: 'jasmine2',

  seleniumAddress: 'http://11.111.1.11:4444/wd/hub',

  multiCapabilities: [{
    'browserName': 'chrome',
    'chromeOptions': {
        args: ['--test-type']
    }
  }],

  specs: ['./tests/my_test/*_spec.js'],

  onPrepare: function(){

      global.EC = protractor.ExpectedConditions;

      browser.manage().window().maximize();

      var jasmineReporters = require('jasmine-reporters');

      jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
        consolidateAll: true,
        filePrefix: 'tests_xmloutput',
        savePath: './test_results_report'
      }));
  },

  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000
  }
};

完整的错误信息是:

Failures:
1) test name description
  Message:
    Failed: Cannot call method 'click' of undefined
  Stack:
    Error: Failed: Cannot call method 'click' of undefined
        at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:104:16
        at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15
        at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)
        at notify (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:465:12)

1 spec, 1 failure
Finished in 3.206 seconds
[launcher] 0 instance(s) of WebDriver still running
[launcher] chrome #1 failed 1 test(s)
[launcher] overall: 1 failed spec(s)
[launcher] Process exited with error code 1

规范文件/测试的内容是:

HeaderNavigationPartialPage.myAppButton.click();
LeftNavigationPartialPage.myAppToolsLink.ERROR-ON-PURPOSE.click();  
browser.wait(EC.elementToBeClickable(LeftNavigationPartialPage.myAppSearchLink), 10000);
LeftNavigationPartialPage.myAppSearchLink.click();

【问题讨论】:

  • 嗯,我通常会看到这种错误发生在哪一行。你在beforeEach(),afterEach()有任何click()的电话吗?
  • 不。我故意重命名一个元素变量只是为了创建这个错误。
  • 您能否展示您获得的完整输出并分享您正在使用的量角器配置?另外,你用的是什么量角器版本?
  • @alecxe 是的,我会得到这些信息。给我一秒钟。
  • 感谢您的更新。另外,你能显示test name description规范的内容吗?

标签: error-handling webdriver jasmine protractor end-to-end


【解决方案1】:

这是 jasminewd 项目中的一个相关问题,protractor 在后台使用:

问题现已修复,jasmine 升级到 >=2.3.1

你应该做的是protractor升级到>=2.1.0


旧答案:

作为一种解决方法,请返回jasmine 1.x

exports.config = {
    framework: 'jasmine',

    ...
}

【讨论】:

  • 自 2015 年 5 月 15 日起,该问题已关闭 - 升级到 Protractor 2.3.1 包含此修复程序。
  • @Dr1Ku 目前还没有量角器 2.3.1,朱莉的意思是茉莉花 2.3.1。但是,无论如何,谢谢你的观点 - 更新了答案。
猜你喜欢
  • 2022-01-03
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-18
  • 2014-01-12
  • 1970-01-01
  • 2015-02-23
相关资源
最近更新 更多