import 'codeceptjs'; import { logger } from '../Logger/logger'; import { CommonKeyword } from "./commonKeyword"; import { DewLoader } from './dewLoader'; import { Wait } from './dewWait'; import { DewElement } from './element'; // import { Wait } from './dewWait'; /** * Tab Navigation class */ export class TabNavigation { /** * To select tab on module level * * ```js * * await TabNavigation.selectTab("Operational Suppliers") * await TabNavigation.selectTab("Operational Suppliers",true) // If you want to execute this method with z.click on IE browser * ``` * * @param {String} tabName * @param {boolean} IEclick * */ static async selectTab(tabName: string, IEclick?: boolean) { try { if (IEclick === undefined) { IEclick = false; } await CommonKeyword.clickElement(`.//dew-tabset//a[text()[normalize-space()='${tabName}']]| (//div[@id='stickytabs-errpanel-position'])[1]//a[contains(.,'${tabName}')]`, IEclick); await DewLoader.waitForSpinner(); await DewElement.verifyIfISeeElement(`.//dew-tabset//a[text()[normalize-space()='${tabName}'] and contains(@class,'active')]`); // await z.seeElement(`.//dew-tabset//a[text()[normalize-space()='${tabName}'] and contains(@class,'active')]`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while switching to tab`); throw error; } } /** * To select tab on sub module page level * * ```js * * await TabNavigation.selectPageTab("Details") * await TabNavigation.selectPageTab("Operational Suppliers",true) // If you want to execute this method with z.click on IE browser * ``` * * @param {String} tabName * @param {boolean} IEclick * */ static async selectPageTab(tabName: string, IEclick?: boolean) { try { if (IEclick === undefined) { IEclick = false; } await CommonKeyword.clickElement(`(.//div[@id='stickytabs-errpanel-position'])[1]//a[contains(.,'${tabName}')]`, IEclick); await DewLoader.waitForSpinner(); await DewElement.verifyIfISeeElement(`(.//div[@id='stickytabs-errpanel-position'])[1]//a[text()[normalize-space()='${tabName}'] and contains(@class,'active')] | .//dew-tabset//a[*[text()[normalize-space()='${tabName}']]][contains(@class,'active')]`); // await z.seeElement(`(.//div[@id='stickytabs-errpanel-position'])[1]//a[text()[normalize-space()='${tabName}'] and contains(@class,'active')] | .//dew-tabset//a[*[text()[normalize-space()='${tabName}']]][contains(@class,'active')]`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while switching to tab`); throw error; } } /** * To select dew default head tab * * ```js * * await TabNavigation.selectDefaultHeadTab("Basic Details") * await TabNavigation.selectDefaultHeadTab("Operational Suppliers",true) // If you want to execute this method with z.click on IE browser * ``` * * @param {String} tabName * @param {boolean} IEclick * */ static async selectDefaultHeadTab(tabName: string, IEclick?: boolean) { try { // await Wait.waitForDefaultTimeout(2); if (IEclick === undefined) { IEclick = false; } await CommonKeyword.scrollIntoView(`.//div[contains(@class,'tab-links')]//li[a[dew-default-tab-head[text()[normalize-space()='${tabName}']]]]`); await Wait.waitForElementClickable(`.//div[contains(@class,'tab-links')]//li[a[dew-default-tab-head[text()[normalize-space()='${tabName}']]]]`); await CommonKeyword.forceClick(`.//div[contains(@class,'tab-links')]//li[a[dew-default-tab-head[text()[normalize-space()='${tabName}']]]]`); await DewLoader.waitForSpinner(); await DewElement.verifyIfISeeElement(`.//dew-tabset//a[dew-default-tab-head[text()[normalize-space()='${tabName}']]][contains(@class,'active')]`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while switching to tab`); throw error; } } }