Kai*_*777 4 javascript selenium protractor
我的页面上有两个输入文本框和一个标签.我想从所有三个元素中获取数字,将两个文本框号一起添加,然后检查总和是否等于标签.我该怎么做?
这是我到目前为止所做的,但它并没有为我工作.似乎getAttribute返回一个带有数字周围的撇号的值.如果我尝试使用"parseInt",则返回"NaN"
element(by.id('textbox1')).getAttribute('value').then(function(value){
textbox1value = value;
});
element(by.id('textbox2')).getAttribute('value').then(function(value){
textbox2value = value;
});
element(by.id('label1')).getText().then(function(value){
label1value = value;
});
expect(textbox1value + textbox2value).toEqual(label1value);
Run Code Online (Sandbox Code Playgroud)
你可以用promise.all()以下方法解决它:
var first = element(by.id('textbox1')).getAttribute('value'),
second = element(by.id('textbox2')).getAttribute('value'),
total = element(by.id('label1')).getText();
protractor.promise.all([first, second, total]).then(function (values) {
expect(parseInt(values[0]) + parseInt(values[1])).toEqual(parseInt(values[2]));
});
Run Code Online (Sandbox Code Playgroud)
或者,你也可以使用qpromise库和它的spread()语法糖:
Q.all([first, second, total]).spread(function (first, second, total) {
first = parseInt(first);
second = parseInt(second);
total = parseInt(total);
expect(first + second).toEqual(total);
});
Run Code Online (Sandbox Code Playgroud)
而且,你还可以代替protractor.promise用q,请参阅:
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |