Транспортир показывает значение переменной как «неопределенное» - PullRequest
0 голосов
/ 02 января 2019

Мы определяем переменные из элементов на одной странице сайта, нажимая кнопку редактирования, которая открывает следующую страницу.На этой странице мы должны подтвердить, что данные, полученные на предыдущей странице, соответствуют данным, показанным на 2-й странице.Наша проблема в том, что когда тест переходит на 2-ю страницу, он не может вызвать переменные, которые мы определили на 1-й странице.ниже приведены фрагменты нашего кода:

     it ('Student ID Validation', function(){

        // get rows
        var rows = tableData_Dashboard.all(by.tagName("tr"));

        // get cell values
        var cells = rows.all(by.tagName("td"));

        var Student_ID = cells.get(0).getText().then(function(SID){
            console.log(SID);
        });
    Edit_Button_1.click();
    browser.sleep(2000);
    expect(Student_ID_on_Reg_Page.getAttribute('value')).toEqual(Student_ID);

после выполнения мы получаем следующую ошибку

 Message:
Expected '123456' to equal undefined.

Мы подозревали, что это может быть связано с асинхронизацией, но это не так.тест переходит на страницу 2 после сохранения переменной со страницы 1, поэтому мы не понимаем, почему это происходит.Как мы можем это исправить и использовать переменные для утверждения?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Проблема в том, что вы указали обратный вызов then(), в котором вы просто регистрируете значение, но не возвращаете его:

var Student_ID = cells.get(0).getText().then(function(SID){
    console.log(SID);
});

Поскольку ничего не возвращается, Student_ID станет обещаниемкоторый будет преобразован в undefined.

. Вам либо понадобится возврат:

var Student_ID = cells.get(0).getText().then(function(SID){
    console.log(SID);
    return SID;
});

Или полностью удалите пользовательский обратный вызов:

var Student_ID = cells.get(0).getText();
0 голосов
/ 02 января 2019

на самом деле, следующая часть вызывает проблему. Как только мы удалили эту часть, тест работает нормально.

.then(function(SID){ console.log(SID); });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...