TypeError:执行cucumber.js时无法读取未定义的属性'get'

时间:2017-05-16 00:50:57

标签: javascript automation protractor cucumber

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

这是我的框架树

- 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 的文件夹中但是在我执行<之后em> cucumber.js 正在显示此typeError

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

我的代码中有人出错吗?

1 个答案:

答案 0 :(得分:0)

我认为这是因为你将量角器browser - 对象绑定到了CucumberJS的this(世界)。量角器可以与CucumberJS结合使用。您使用CucumberJS:

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

步骤实现中的代码可以是 native Protractor语法。所以对你来说问题,改变这个

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

希望有所帮助