我对JavaScript和Protractor还是陌生的。我的测试中有一个简单的任务,我无法完成。
return deffered.fullfil(true)
b)如果否,-点击进行中标签-点击可用标签。-转到步骤1。我正在尝试递归地执行此操作,下面是我的代码。它正在打印找到的Element,但此后再也不会退出该功能并超时。
var check_availibility = function(counter, totalCount, element){
var deffered = rpotractor.promise.deffer()
if(counter <= totalCount){
browser.wait(function(){
browser.wait(EC.visibilityOf(element),2000)
return element
}).then(function(success){
console.log('Element found.')
return deffered.fulfill(true)
}, function(err){
inprogressTab.click()
.then(() => availableTab.click())
.then(() => check_availibility(counter+1 , totalCount, element))
})
} else{
return deffered.reject(false)
}
retrun deffered.promise
}
我在您的共享代码上看到一些语法错误。下面,我尝试修复这些错误并提供了预期的行为,但仍然不知道inprogressTab
的来源。
const check_availibility = function(counter, totalCount, element) {
const deferred = protractor.promise.defer();
if (counter <= totalCount) {
browser
.wait(() => browser.wait(EC.visibilityOf(element), 2000))
.then(
element => {
console.log("Element found.");
return deferred.fulfill(true);
},
err => {
inprogressTab
.click()
.then(() => availableTab.click())
.then(() => check_availibility(counter + 1, totalCount, element));
}
);
} else {
return deferred.reject(false);
}
return deferred.promise;
};