gpt4 book ai didi

javascript - 从 promise 中添加多个值 [Protractor]

转载 作者:搜寻专家 更新时间:2023-11-01 05:30:11 26 4
gpt4 key购买 nike

我的页面上有两个输入文本框和一个标签。我想从所有三个元素中获取数字,将两个文本框数字加在一起,然后检查总和是否等于标签。我该怎么做?

这是我目前所拥有的,但它对我没有用。似乎 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);

最佳答案

你实际上可以用 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]));
});

或者,您也可以使用 q promise library它是 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);
});

并且,您还可以将 protractor.promise 替换为 q,请参阅:

关于javascript - 从 promise 中添加多个值 [Protractor],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32337046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com