在量角器中启用元素时单击
Click while element isEnabled in protractor
我必须在页面上启用时单击右箭头按钮。
这是我的代码:
var sig = element(by.id('#right_button'));
sig.isEnabled().then(function (result) {
while (result) {
sig.click();
return sig;
}
}
它只点击了两次,我需要在元素启用时点击。我该怎么办?
确保您的元素在 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();
});
}
});
});
})();
希望对您有所帮助。
这样解决的:
var sig = element(by.id('#right_button'));
reclick = function (sig) {
sig.isEnabled().then(function (result) {
while (result) {
sig.click();
return reclick(sig);
}
});
};
reclick(sig);
我必须在页面上启用时单击右箭头按钮。
这是我的代码:
var sig = element(by.id('#right_button'));
sig.isEnabled().then(function (result) {
while (result) {
sig.click();
return sig;
}
}
它只点击了两次,我需要在元素启用时点击。我该怎么办?
确保您的元素在 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();
});
}
});
});
})();
希望对您有所帮助。
这样解决的:
var sig = element(by.id('#right_button'));
reclick = function (sig) {
sig.isEnabled().then(function (result) {
while (result) {
sig.click();
return reclick(sig);
}
});
};
reclick(sig);