量角器:保留变量getText()函数

时间:2017-03-08 08:25:52

标签: function variables protractor gettext preserve

我想保留变量外部的getText()函数,以便我可以将它与测试中的后一个值匹配。例如:

页面对象文件:

this.numberOfAllLines = element(by.id('all_lines'));
this.tableCell = element(by.css('.table_results_lines'));
this.sumOfAllLinesText = element(by.id('sum_lines'));

规格文件:

var numberOfLines = '';
var newNumberOfLines = '';

describe(...
    it(...
        page.numberOfAllLines.getText().then(function(num) {
            numberOfLines = num;
        });

        newNumberOfLines = numberOfLines + 10;

        expect(page.tableCell.getText()).toEqual(newNumberOfLines);

        // doing some clicks

        expect(page.sumOfAllLinesText.getText()).toEqual(newNumberOfLines);
    });
});

How do I return the response from an asynchronous call?未解答此问题。

1 个答案:

答案 0 :(得分:1)

这段代码newNumberOfLines = numberOfLines + 10是异步的,即使在numberOfLines = num;的分配发生之前也会执行。

你在做什么是正确的。拥有一个包含要比较的值的全局变量。但是将赋值代码放在getText()的链式承诺中。

it(...
        page.numberOfAllLines.getText().then(function(num) {
            numberOfLines = num;
            newNumberOfLines = numberOfLines + 10;
        });  

        expect(page.tableCell.getText()).toEqual(newNumberOfLines);