UNPKG

@serenity-js/protractor

Version:

Adapter that integrates @serenity-js/web with Protractor, enabling Serenity/JS reporting and using the Screenplay Pattern to write end-to-end test scenarios

39 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProtractorRootLocator = void 0; const web_1 = require("@serenity-js/web"); const promised_1 = require("../../promised"); /** * Protractor-specific implementation of [`RootLocator`](https://serenity-js.org/api/web/class/RootLocator/). * * @group Models */ class ProtractorRootLocator extends web_1.RootLocator { browser; constructor(browser) { super(); this.browser = browser; } async isPresent() { return true; } async nativeElement() { return { element: this.browser.element.bind(this.browser), all: this.browser.element.all.bind(this.browser), }; } async switchToFrame(element) { // https://github.com/angular/protractor/issues/1846#issuecomment-82634739; const webElement = await element.getWebElement(); await (0, promised_1.promised)(this.browser.switchTo().frame(webElement)); } async switchToParentFrame() { await (0, promised_1.promised)(this.browser.driver.switchToParentFrame()); } async switchToMainFrame() { await (0, promised_1.promised)(this.browser.driver.switchTo().defaultContent()); } } exports.ProtractorRootLocator = ProtractorRootLocator; //# sourceMappingURL=ProtractorRootLocator.js.map