2015-10-16 2 views
0

Невозможно щелкнуть по элементу весь метод. Я получаю Object Object не имеет фильтра метода. Во время исследования выяснилось, что это связано с некоторыми строками. Пожалуйста, порекомендуйте. СпасибоНевозможно щелкнуть элемент по элементу все

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. Я получаю не могу вызвать метод bind неопределенного сообщения об ошибке. Я думал, может быть, getText вызывает проблему и удаляет этот $$ ('a [ng-click = "flagPhoto()"]'). Filter (function (elem, index) { console.log (отфильтрованElements [0]) }) затем (функция (отфильтрованные элементы) { ожидать (отфильтрованоElements [0] .isPresent()). ToBe (true); deletedElements [0] .click(); }); }); – user2744620

+0

Возможно ли, что 'filterElements' является пустым массивом? Попробуйте 'console.log (filterElements)' перед 'expect()'. – finspin

+0

Я использовал другой локатор, и теперь он работает. Возможно, проблема с локатором, который я использовал ранее. Большое спасибо element.all (by.css ('a.flag')). фильтр (функция (elem) { возвращение elem.isDisplayed(); }). первый(). click(); – user2744620

Смежные вопросы