From 30c0ceb3e2745d3bcc549f4d4963d9fade132e71 Mon Sep 17 00:00:00 2001 From: Julie Date: Thu, 19 Dec 2013 18:35:29 -0800 Subject: [PATCH] feat(element) element.all exports an 'each' method Usage: ``` element.all(by.model('foo')).each(function(webElement) { // Do stuff with webElement. }); ``` Closes #298 --- lib/protractor.js | 8 ++++++++ spec/basic/findelements_spec.js | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/lib/protractor.js b/lib/protractor.js index 96e432e79..af0ef40b7 100644 --- a/lib/protractor.js +++ b/lib/protractor.js @@ -131,6 +131,14 @@ var buildElementHelper = function(ptor) { return ptor.findElements(locator).then(fn); }; + elementArrayFinder.each = function(fn) { + ptor.findElements(locator).then(function(arr) { + arr.forEach(function(webElem) { + fn(webElem); + }); + }); + }; + return elementArrayFinder; } diff --git a/spec/basic/findelements_spec.js b/spec/basic/findelements_spec.js index bc9a0666a..4650f02e0 100644 --- a/spec/basic/findelements_spec.js +++ b/spec/basic/findelements_spec.js @@ -362,6 +362,13 @@ describe('global element function', function() { expect(colorList.last(0).getAttribute('value')).toEqual('red'); }); + it('should perform an action on each element in an array', function() { + var colorList = element.all(by.model('color')); + colorList.each(function(colorElement) { + expect(colorElement.getText()).not.toEqual('purple'); + }); + }); + it('should export an isPresent helper', function() { expect(element(by.binding('greet')).isPresent()).toBe(true); expect(element(by.binding('nopenopenope')).isPresent()).toBe(false);