src/page_objects/web/general/base.modal.js
import BasePage from "../../base.page.js";
/**
* BaseModalPage
* @extends BasePage
*/
class BaseModalPage extends BasePage {
/**
* @param {args} args Args from controller
*/
constructor(args) {
super(args);
}
// PAGE ELEMENTS
/* eslint-disable require-jsdoc */
header() {
return this.element("#displayedFullScreenModal h1");
}
closeModalX() {
return this.element("button#closeModalButton");
}
/* eslint-enable require-jsdoc */
// PAGE FUNCTIONS
/**
* Wait for header of modal to be visible
*/
async waitForHeader() {
await this.header().waitForVisible();
}
/**
* Clicks and closes the modal
*/
async closeModal() {
if (await this.closeModalX().isVisible()) {
await this.closeModalX().click();
}
}
/**
* Checks if header is visible
* @returns {Boolean} true if header is visible
*/
async isHeaderVisible() {
return await this.header().isVisible();
}
/**
* Get the text of the modal header
* @returns {String} Text of the header
*/
async getModalHeaderText() {
return await this.header().getText();
}
}
export default BaseModalPage;