问题描述
我正在编写应该与滑块互动的量角器测试。 滑块控制输出美元值的字段。 该测试尝试沿x轴移动该条,直到返回$ 15,000的值。
我设法使滑块移动,但是它不遵守由数量变量设置的限制。 异步命令使我的生活更加艰难。
var dragSlider = function(amount) {
element(by.css('.irs-single')).getText().then(function(text) {
console.log(text)
if (text !== amount) {
browser.actions().dragAndDrop(element(by.css('.irs-slider.single')), {x:1, y:0}).perform();
element(by.css('.irs-single')).getText().then(console.log(amount, text, amount===text)).then(dragSlider());
}
});
};
当我运行dragSlider("$15,000");
, console.log(amount, text, amount===text)
返回,例如:
$14,900
undefined '$14,900' false
$15,000
undefined '$15,000' false
$15,100
undefined '$15,100' false
您能否让我知道我在这里做错了什么?
1楼
rrowland
1
2015-08-07 05:15:59
您正在立即调用console.log()
,而不是将其传递给Promise.then()
回调。
尝试更改:
element(by.css('.irs-single')).getText(text)
.then(console.log(amount, text, amount===text))
.then(dragSlider(text));
至:
element(by.css('.irs-single')).getText().then(dragSlider);
2楼
Towercap
1
已采纳
2015-08-07 05:49:38
谢谢,全部。 @Bergi的权利。 我这傻傻的遗漏了! 更正了以下代码。
var dragSlider = function(amount) {
element(by.css('.irs-single')).getText().then(function(text) {
if (text !== amount) {
browser.actions().dragAndDrop(element(by.css('.irs-slider.single')), {x:1, y:0}).perform();
dragSlider(amount);
}
});
};