angularjs - How to avoid 'Index out of Bound' exceptions with Protractor ElementArrayFinder -
i pretty new protractor , using conjunction chai , chai-as-promised. trying figure out how best handle situation, when elementarrayfinder doesn't contain elements need.
for elementfinder (no array) seems pretty simple:
element(by.css('.neverthere')).ispresent().then(function(value){ console.log('ispresent() .neverthere is: ', value, '\n'); }); the code above doesn't throw exception , ispresent() returns false, once promise evaluated.
once start using elementarrayfinders, gets more complicated:
var el = element.all(by.repeater( 'property in propertypanel.properties')) .first() .all(by.css('.neverthere')) .first(); el.ispresent().then(function(value){ console.log('ispresent() ', name, ' is: ', value, '\n'); }); the code above throws error: index out of bound. exception evaluation of ispresent(), when array, on first() evaluated, empty.
is there way access elements elementarrayfinder, - if element isn't present - elementfinder returned answers 'false' ispresent(), instead of throwing exception?
if understand correctly, can assert count of elements found 0:
var elements = element.all(by.repeater('property in propertypanel.properties')).all(by.css('.neverthere')); expect(elements.count()).tobe(0); using first() in conjunction browser.iselementpresent():
var elements = element.all(by.repeater('property in propertypanel.properties')).all(by.css('.neverthere')); expect(browser.iselementpresent(elements.first()).tobe(false);
Comments
Post a Comment