2016-06-09 116 views
5

我一直在嘗試使用下面的代碼片段來檢查我正在尋找的元素是否存在,但是我得到的是「失敗:找不到使用定位器的元素:通過(css selector ,.icon-cancel)「。我想節目做的是執行B()檢查量角器中是否存在元素

element(by.css('.icon-cancel')).isDisplayed().then(function(result) { 
    if (result) { 
     a(); 
    } else { 
     b(); 
    } 
}); 

回答

11

isDisplayed()如果一個元素實際上並不在DOM樹存在會失敗。您需要isPresent()方法代替:

$('.icon-cancel').isPresent().then(function(result) { 
    if (result) { 
     a(); 
    } else { 
     b(); 
    } 
}); 
0

一種可能性是,如果該元素是動態加載的,該元件可以不被你的測試運行時加載。因此,您可以等待幾秒鐘讓元素可用。

var EC = protractor.ExpectedConditions; 
var yourElement = element(by.css('.icon-cancel')); 
browser.wait(EC.presenceOf(yourElement), 5000);