我正在尝试使用wd.js计算 android appium中回收站视图的总元素。
为此,我使用逻辑:
1.对于id,获取屏幕上显示的所有元素>>获取每个元素的唯一内容描述并将其保存到数组中。
2.Swipe / scroll the screen>>将元素的唯一属性保存到数组>>而数组的总长度不等于总计数
我在下面写了代码:
it("Scroll and save offerid to offersPresent List", function () {
while(offersPresent.length !== offersCount) {
return offersPOM.swipeNew(driver, function (err, res) { }).then(function () {
driver.elementsById('someId').then(function (els) {
els.forEach(function (el) {
el.getAttribute('contentDescription').then(function (offerId) {
//Here I check if the offerId is already there in the array or not
if (offersPresent.indexOf(offerId) === -1) {
offersPresent.push(offerId);
}
console.log('offersPresent'.green, offersPresent);
})
})
})
})
}
});
swipNew功能是:
exports.swipeNew = function (driver, callback) {
var action = new TouchAction(driver);
action
.press({ x: 17, y: 1500 })
.wait(2000)
.moveTo({ x: 17, y: 254 })
.release();
return action.perform().then(function (err, res) {
return callback(err, res);
})
};
问题是无论条件如何,此循环只运行一次。 如何使这个循环运行直到满足while条件?
答案 0 :(得分:0)
Javascript中的return函数将停止while循环,因此它只会在while循环中尝试一次代码。
以下是另一个更详细解释的问题:Javascript, while loop return