【问题标题】:TypeError: Cannot read property 'get' of undefined when I execute cucumber.jsTypeError:执行 cucumber.js 时无法读取未定义的属性“get”
【发布时间】:2017-10-14 21:50:14
【问题描述】:

我正在使用量角器在我的框架上实现黄瓜,

这是我的框架树

- FM_cucumber
  - features
    - steps
      * my_steps.js
    * login.feature
  - node_modules
  - test
  * conf.js
  * package.json

在我的 my_steps.js 里面我有这个

var steps = function(){
  this.Given(/^Open google$/, function () {
    this.browser.get('http://www.google.com').then(function(result){
       callback(result);
      });
    });
  };
module.exports = steps;

所以要执行这个功能,我使用命令 cucumber.js 当然我在我有我的 FM_cucumber 的文件夹中,但是在我执行 cucumber.js 显示这个类型错误

TypeError: Cannot read property 'get' of undefined
     at World.<anonymous> (/Users/myname/Documents/FM_cucumber/features/steps/my_steps.js:4:19)

有人发现我的代码有问题吗?

【问题讨论】:

    标签: javascript automation protractor cucumber


    【解决方案1】:

    我认为这是因为您将量角器 browser-object 绑定到 CucumberJS 的 this(World)。 Protractor 可以与 CucumberJS 结合使用“独立”。你使用 CucumberJS 来:

    • 创建功能文件
    • 在功能文件和步骤实现之间创建绑定(使用 RegEx)
    • 将其用于挂钩/报告

    步骤实现中的代码可以是原生量角器语法。所以对于你的问题,改变这个

    var steps = function(){
      this.Given(/^Open google$/, function () {
        this.browser.get('http://www.google.com').then(function(result){
           callback(result);
          });
        });
      };
    module.exports = steps;
    

    进入这个

    var steps = function(){
      this.Given(/^Open google$/, function () {
        browser.get('http://www.google.com')
          .then(function(result){
           callback(result);
          });
        });
      };
    module.exports = steps;
    

    请注意browser.get() 没有结果这一事实,请参阅here

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2015-07-05
      • 2021-06-06
      • 2021-10-02
      • 1970-01-01
      • 2020-07-14
      • 2017-08-30
      • 1970-01-01
      • 2021-07-03
      相关资源
      最近更新 更多