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

Commit 1345137

Browse files
sjelincnishina
authored andcommitted
fix(isElementPresent): for un-wrapped WebElements, browser.isElementPresent was broken (#3871)
Closes #3864
1 parent 74e3bad commit 1345137

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

lib/browser.ts

+10-4
Original file line numberDiff line numberDiff line change
@@ -589,10 +589,16 @@ export class ProtractorBrowser extends Webdriver {
589589
* @returns {!webdriver.promise.Promise} A promise that will resolve to whether
590590
* the element is present on the page.
591591
*/
592-
isElementPresent(locatorOrElement: ProtractorBy|WebElement): wdpromise.Promise<any> {
593-
let element =
594-
((locatorOrElement as any).isPresent) ? locatorOrElement : this.element(locatorOrElement);
595-
return (element as any).isPresent();
592+
isElementPresent(locatorOrElement: Locator|WebElement|ElementFinder): wdpromise.Promise<any> {
593+
let element: ElementFinder;
594+
if (locatorOrElement instanceof ElementFinder) {
595+
element = locatorOrElement;
596+
} else if (locatorOrElement instanceof WebElement) {
597+
element = ElementFinder.fromWebElement_(this, locatorOrElement);
598+
} else {
599+
element = this.element(locatorOrElement);
600+
}
601+
return element.isPresent();
596602
}
597603

598604
/**

lib/element.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,7 @@ export class ElementFinder extends WebdriverWebElement {
844844
});
845845
}
846846

847-
static fromWebElement_(browser: ProtractorBrowser, webElem: WebElement, locator: Locator):
847+
static fromWebElement_(browser: ProtractorBrowser, webElem: WebElement, locator?: Locator):
848848
ElementFinder {
849849
let getWebElements = () => {
850850
return wdpromise.fulfilled([webElem]);

0 commit comments

Comments
 (0)