在量角器中单击元素isEnabled时

时间:2015-10-16 11:11:25

标签: javascript angularjs selenium jasmine protractor

我必须在页面上启用时单击右箭头按钮。

这是我的代码:

var sig = element(by.id('#right_button'));
sig.isEnabled().then(function (result) {
    while (result) {
        sig.click();
        return sig;
    }
}

它只点击两次,我需要点击元素启用。我该怎么办?

2 个答案:

答案 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();
            });
        }
    });
    });
})();

希望它有所帮助。