@@ -365,6 +365,7 @@ Protractor.prototype.wrapWebElement = function(element) {
365
365
366
366
var originalFindElement = element . findElement ;
367
367
var originalFindElements = element . findElements ;
368
+ var originalIsElementPresent = element . isElementPresent ;
368
369
369
370
/**
370
371
* @see webdriver.WebElement.findElement
@@ -391,6 +392,22 @@ Protractor.prototype.wrapWebElement = function(element) {
391
392
return originalFindElements . apply ( element , arguments ) ;
392
393
}
393
394
395
+ /**
396
+ * @see webdriver.WebElement.isElementPresent
397
+ * @return {!webdriver.promise.Promise } A promise that will be resolved with
398
+ * whether an element could be located on the page.
399
+ */
400
+ element . isElementPresent = function ( locator , varArgs ) {
401
+ thisPtor . waitForAngular ( ) ;
402
+ if ( locator . findArrayOverride ) {
403
+ return locator . findArrayOverride ( element . getDriver ( ) , element ) .
404
+ then ( function ( arr ) {
405
+ return ! ! arr . length ;
406
+ } ) ;
407
+ }
408
+ return originalIsElementPresent . apply ( element , arguments ) ;
409
+ } ;
410
+
394
411
/**
395
412
* Evalates the input as if it were on the scope of the current element.
396
413
* @param {string } expression
@@ -448,6 +465,21 @@ Protractor.prototype.findElements = function(locator, varArgs) {
448
465
return this . driver . findElements ( locator , varArgs ) ;
449
466
} ;
450
467
468
+ /**
469
+ * Tests if an element is present on the page.
470
+ * @see webdriver.WebDriver.isElementPresent
471
+ * @return {!webdriver.promise.Promise } A promise that will resolve to whether
472
+ * the element is present on the page.
473
+ */
474
+ Protractor . prototype . isElementPresent = function ( locatorOrElement , varArgs ) {
475
+ if ( locatorOrElement . findArrayOverride ) {
476
+ return locatorOrElement . findArrayOverride ( this . driver ) . then ( function ( arr ) {
477
+ return ! ! arr . length ;
478
+ } ) ;
479
+ }
480
+ return this . driver . isElementPresent ( locatorOrElement , varArgs ) ;
481
+ } ;
482
+
451
483
/**
452
484
* Add a module to load before Angular whenever Protractor.get is called.
453
485
* Modules will be registered after existing modules already on the page,
0 commit comments