[英]Undefined variable in .then() function
我正在編寫應該與滑塊互動的量角器測試。 滑塊控制輸出美元值的字段。 該測試嘗試沿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
您能否讓我知道我在這里做錯了什么?
您正在立即調用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);
謝謝,全部。 @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);
}
});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.