Транспортир + огурец ждет и время ожидания, не выполняя полный тест

Я внедряю тесты E2E, используя Protractor с CucumberJS. Проблема, с которой я сталкиваюсь, заключается в том, что она выполняет только 1-й шаг и ждет, пока не истечет время ожидания. Эта проблема только при использовании объекта страницы.

Вот мой файл функций:

Сценарий: проверить добавление веса инцидента. При добавлении приоритетной программы и добавлении типа веса инцидента. И пользователь создает инцидент. Тогда вес инцидента должен отображаться правильно.

Файл объекта страницы:

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 ответ

Потому что вы не вспомните 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();

Шаг файла:

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

//Option 1, invoke `callback`
Given('priority program add', function(callback) {
    createincidentpage.priorityAdd().then(function(){
       return callback();
    });
});

// Option 2, return a promise like object, recommend to use option 2
Given('adding incident weight type', function(){
    return createincidentpage.priorityAdd();
});   
Другие вопросы по тегам