量角器:在 getText() 函数之外保留变量
Protractor: preserve variable outside getText() function
我想在 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? 中没有回答。
这段代码 newNumberOfLines = numberOfLines + 10
是异步的,甚至会在 numberOfLines = num;
的赋值发生之前执行。
你的做法是正确的。有一个全局变量来保存要比较的值。但是在 getText()
.
的链式承诺中有赋值代码
it(...
page.numberOfAllLines.getText().then(function(num) {
numberOfLines = num;
newNumberOfLines = numberOfLines + 10;
});
expect(page.tableCell.getText()).toEqual(newNumberOfLines);
我想在 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? 中没有回答。
这段代码 newNumberOfLines = numberOfLines + 10
是异步的,甚至会在 numberOfLines = num;
的赋值发生之前执行。
你的做法是正确的。有一个全局变量来保存要比较的值。但是在 getText()
.
it(...
page.numberOfAllLines.getText().then(function(num) {
numberOfLines = num;
newNumberOfLines = numberOfLines + 10;
});
expect(page.tableCell.getText()).toEqual(newNumberOfLines);