Skip to content
This repository was archived by the owner on Jul 29, 2024. It is now read-only.

Commit a2afb4d

Browse files
committed
fix(element): element.all.get and element.all.first/last should wrap web elements
Closes #307
1 parent a69ebc3 commit a2afb4d

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

lib/protractor.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ var buildElementHelper = function(ptor) {
106106
var id = ptor.findElements(locator).then(function(arr) {
107107
return arr[index];
108108
});
109-
return new webdriver.WebElement(ptor.driver, id);
109+
return ptor.wrapWebElement(new webdriver.WebElement(ptor.driver, id));
110110
};
111111

112112
elementArrayFinder.first = function() {
@@ -116,14 +116,14 @@ var buildElementHelper = function(ptor) {
116116
}
117117
return arr[0];
118118
});
119-
return new webdriver.WebElement(ptor.driver, id);
119+
return ptor.wrapWebElement(new webdriver.WebElement(ptor.driver, id));
120120
};
121121

122122
elementArrayFinder.last = function() {
123123
var id = ptor.findElements(locator).then(function(arr) {
124124
return arr[arr.length - 1];
125125
});
126-
return new webdriver.WebElement(ptor.driver, id);
126+
return ptor.wrapWebElement(new webdriver.WebElement(ptor.driver, id));
127127
};
128128

129129
elementArrayFinder.then = function(fn) {

spec/basic/findelements_spec.js

+9
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,15 @@ describe('wrapping web driver elements', function() {
464464
element.all(by.binding('planet.name')).then(function(results) {
465465
results.forEach(verifyMethodsAdded);
466466
});
467+
element.all(by.binding('planet.name')).get(0).then(function(elem) {
468+
elem.verifyMethodsAdded;
469+
});
470+
element.all(by.binding('planet.name')).first().then(function(elem) {
471+
elem.verifyMethodsAdded;
472+
});
473+
element.all(by.binding('planet.name')).last().then(function(elem) {
474+
elem.verifyMethodsAdded;
475+
});
467476
element.all(by.css('option[value="4"]')).then(function(results) {
468477
results.forEach(verifyMethodsAdded);
469478
});

0 commit comments

Comments
 (0)