src/page_objects/web/contacts/pages/contacts.page.js
import BaseContactsPage from "./base.contacts.page.js";
/**
* ContactsPage
* @extends BaseContactsPage
*/
class ContactsPage extends BaseContactsPage {
/**
* @param {args} args Args from controller
*/
constructor(args) {
super(args);
}
// PAGE ELEMENTS
/* eslint-disable require-jsdoc, max-len */
showMyContactsButton() {
return this.element("span=My Contacts");
}
showAvailableContactsButton() {
return this.element("span=Available");
}
showAllContactsButton() {
return this.element("span=All");
}
createContactButton() {
return this.element('//button[contains(string(), "Add a Contact")]');
}
pageHeaderIcon() {
return this.element("div.iconsize-header-icon i.icon-contact-profile");
}
/* eslint-enable require-jsdoc, max-len */
// PAGE FUNCTIONS
/**
* Use nav panel to visit page
*/
async visit() {
await this.navPanel.contacts().click();
await this.pageHeaderIcon().waitForVisible(30000);
}
/**
* Open create contact modal
*/
async openCreateContactModal() {
await this.createContactButton().click();
}
/**
* Use filter to show all contacts
*/
async showAll() {
await this.showFilterOptions();
await this.showAllContactsButton().click();
}
/**
* Use filter to show available contacts
*/
async showAvailable() {
await this.showFilterOptions();
await this.showAvailableContactsButton().click();
}
/**
* Use filter to show personal contacts
*/
async showMyContacts() {
await this.showFilterOptions();
await this.showMyContactsButton().click();
}
}
export default ContactsPage;