我必须在页面上启用时单击右箭头按钮。
这是我的代码:
var sig = element(by.id('#right_button'));
sig.isEnabled().then(function (result) {
while (result) {
sig.click();
return sig;
}
}
它只点击两次,我需要点击元素启用。我该怎么办?
答案 0 :(得分:2)
解决这个问题:
var sig = element(by.id('#right_button'));
reclick = function (sig) {
sig.isEnabled().then(function (result) {
while (result) {
sig.click();
return reclick(sig);
}
});
};
reclick(sig);
答案 1 :(得分:0)
在开始执行循环之前,确保元素在DOM上,因为循环的执行速度比我们想象的要快得多。在点击之前可能等待元素加载应该可以解决问题。或者使用函数调用,是最好的方法。这是你如何做到的 -
var EC = protractor.ExpectedConditions;
var sig = element(by.id('#right_button'));
(function clickIt(){
browser.wait(EC.presenceOf(sig), 2000).then(function(){
sig.isEnabled().then(function (enabled) {
if(enabled){
sig.click().then(function(){
clickIt.call();
});
}
});
});
})();
希望它有所帮助。