2015-10-16 124 views
0

無法點擊元素上的所有方法。我得到的對象沒有方法過濾器。在研究過程中,我發現它與某些字符串有關。請指教。謝謝無法點擊元素上的元素全部

var sflag = $('a[ng-click="flagPhoto()"]'); 
    browser.wait(EC.elementToBeClickable(sflag), 30000, "not clickable"); 
    $('a[ng-click="flagPhoto()"]').filter(function(elem, index) { 
    return elem.getText().then(function(text) { 
    return text === 'flag for abuse'; 
    }); 
}).then(function(filteredElements) { 
    expect(filteredElements[0].isPresent()).toBe(true); 
    filteredElements[0].click(); 
}); 
+0

此問題有無關的webdriver。請刪除標籤。 – CMerrill

回答

3

您沒有使用此選擇器選擇多個元素。只有第一個找到的元素將被選中:

$('a[ng-click="flagPhoto()"]').filter... 

取而代之的是,使用此:

$$('a[ng-click="flagPhoto()"]').filter 
+0

謝謝finspin。我越來越無法調用未定義錯誤消息的方法綁定。我認爲可能是getText導致了問題,並刪除了$$('a [ng-click =「flagPhoto()」]')。 ; filteredElements [0] .click(); });(函數(filteredElements){expected(filteredElements [0] .isPresent()).Be(true); } }); – user2744620

+0

'filteredElements'是否可能是一個空數組?在expect()之前嘗試'console.log(filteredElements)'。 – finspin

+0

我使用了不同的定位器,現在它可以工作。也許我之前使用的定位器存在問題。非常感謝element.all(by.css('a.flag'))。 filter(function(elem){return elm.isDisplayed(); }))。 first()。 click(); – user2744620