2017-08-24 170 views
1

對於量角器E2E測試,我很新,想知道元件是否可點擊(ExpectedConditions.elementToBeClickable)但不一定可見(ExpectedConditions.visibilityOf)。可點擊但不可見?

例如,我有以下代碼:

var EC = protractor.ExpectedConditions; 
    var tryItButtonClickable = EC.elementToBeClickable(tryItButton); 
    var tryItButtonVisible = EC.visibilityOf(tryItButton); 

    return browser.wait(EC.and(tryItButtonClickable, tryItButtonVisible), getWaitTime()) 
     .then(function() { 
      var protocol = url.parse(myarray[0].url).protocol; 
       if (protocol === null) { 
        throw new Error('expected ' + protocol + ' not to be null'); 
       } 
     }) 

添加tryItButtonVisible片之前,我就從量角器收到超時錯誤,大概是因爲我的tryItButton是點擊,但尚未加載到DOM。

這是真的,還是我是多餘的?

感謝

回答

0

這是量角器的官方點擊功能

elementToBeClickable(elementFinder: ElementFinder): Function { 
return this.and(this.visibilityOf(elementFinder),() => { 
    return elementFinder.isEnabled().then(passBoolean, falseIfMissing); 
}) 

正如你看到的,它首先檢查元素知名度所以答案是NO

資源:https://github.com/angular/protractor/blob/master/lib/expectedConditions.ts線:188

+0

我我只是好奇,至於爲什麼當我和'兩者在一起時,行爲就是預期的行爲,而當我只使用'elementToBeClickable'時,我的UI會凍結並且可以找不到元素 –

相關問題