@@ -261,7 +261,9 @@ var buildElementHelper = function(ptor) {
261
261
return self . getWebElements ( ) . then ( function ( parentWebElements ) {
262
262
var list = [ ] ;
263
263
parentWebElements . forEach ( function ( parentWebElement , index ) {
264
- var elementFinder = self . get ( index ) ; // Wrap in ElementFinder
264
+ var elementFinder =
265
+ ElementFinder . fromWebElement_ ( parentWebElement , self . locator_ ) ;
266
+
265
267
var filterResults = filterFn ( elementFinder , index ) ;
266
268
if ( filterResults instanceof webdriver . promise . Promise ) {
267
269
filterResults . then ( function ( satisfies ) {
@@ -460,8 +462,8 @@ var buildElementHelper = function(ptor) {
460
462
var self = this ;
461
463
return this . getWebElements ( ) . then ( function ( arr ) {
462
464
var list = [ ] ;
463
- arr . forEach ( function ( webElem , index ) {
464
- list . push ( self . get ( index ) ) ;
465
+ arr . forEach ( function ( webElem ) {
466
+ list . push ( ElementFinder . fromWebElement_ ( webElem , self . locator_ ) ) ;
465
467
} ) ;
466
468
return list ;
467
469
} ) ;
@@ -737,6 +739,14 @@ var buildElementHelper = function(ptor) {
737
739
} ;
738
740
util . inherits ( ElementFinder , webdriver . promise . Promise ) ;
739
741
742
+
743
+ ElementFinder . fromWebElement_ = function ( webElem , locator ) {
744
+ var getWebElements = function ( ) {
745
+ return webdriver . promise . fulfilled ( [ webElem ] ) ;
746
+ } ;
747
+ return new ElementArrayFinder ( getWebElements , locator ) . toElementFinder_ ( ) ;
748
+ } ;
749
+
740
750
/**
741
751
* Create a shallow copy of ElementFinder.
742
752
*
0 commit comments