2015-10-16 78 views
3

我必須在頁面上啓用時單擊右箭頭按鈕。在量角器中啓用元素時點擊

這是我的代碼:

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

只點擊兩次,我需要點擊而被啓用元素。我能怎麼做?

回答

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

希望它有幫助。

+0

我要過測試這種方式。非常感謝! – winlinuz

+0

有沒有語法錯誤? } browser.sleep(3000); }(); } – winlinuz

+0

@winlinuz,是的我的錯。我錯過了關閉'then()'的括號。更新了答案。謝謝:) –

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); 
相關問題