量角器+黄瓜等待并超时而不执行完整的测试

时间:2018-07-11 17:17:49

标签: protractor pageobjects cucumberjs

我正在使用带有CucumberJS的Protractor实施E2E测试。我面临的问题是它只执行第一步,并等待直到超时。仅在使用页面对象时出现此问题。

这是我的功能文件:

场景:验证添加事件权重   给定添加优先级程序   并添加入射重量类型   用户创建事件   然后应该正确显示事故重量。

页面目标文件:

var createincidentpage = function(){    

    this.priorityAdd = function(userdetail, callback) {
        browser.ignoreSyncronization = true;
        incidentSection.click()

        .then(function(){
            return PPPage.click();
        }).then(function(){
            browser.switchtTo().frame(0);
            return newElement.click();
        }).then(fucntion(){
            return newppname.sendkeys("xyz");
        }).then(function(){
            return fromDatePicker.click();
        }).then(function(){
            return gotoTodayElement.click();
        }).then(function(){
            return editableOk.Click();
        }).then(function(){
            return toDatePicker.click();
        }).then(function(){
            return selDateinMOnth.click();
        }).then(function(){
            SubmitButton.click();
            return callback();
        });
    };

module.exports =  new createincidentpage();

我的步骤文件:

var createincidentpage = require ('../pages/createincidentpage.js');

Given('priority program add' , function (callback) {
    createincidentpage.priorityAdd(function callback(){
       callback();
    }):
});

1 个答案:

答案 0 :(得分:0)

因为您没有在for内部调用callback()

为了更加清楚,我在以下代码中重命名了一些变量。

您必须调用priorityAdd()来的callback(),否则运行时无法结束Given()并等到遇到超时为止。

您可以直接在Given()内调用callback()或像以前一样将Given()传递到嵌套函数中并在嵌套函数中调用。

callback

步骤文件:

var createincidentpage = function(){    

    this.priorityAdd = function(userdetail) {
        browser.ignoreSyncronization = true;
        incidentSection.click()

        PPPage.click();      
        browser.switchtTo().frame(0);
        newElement.click();
        newppname.sendkeys("xyz");
        fromDatePicker.click();
        gotoTodayElement.click();
        editableOk.Click();
        toDatePicker.click();
        selDateinMOnth.click();
        return SubmitButton.click();
    };

module.exports =  new createincidentpage();