在量角器中启用元素时单击

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);