UNPKG

playwright-ai-codegen-lib

Version:

A utility to auto-generate Playwright PageObjects and test scripts using OpenAI and DOM extraction.

199 lines (198 loc) 10.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LandingPage = void 0; const Logger_js_1 = require("../utils/Logger.js"); const selectors = { headerRoot: { selector: '#header__root', action: 'click' }, logoDesktop: { selector: '#header__root [data-header-config="logo.desktop"]', action: 'click' }, logoMobile: { selector: '#header__root [data-header-config="logo.mobile"]', action: 'click' }, topNavLinkLabelPrefix: { selector: '#header__root [data-header-config="top_nav_link_label_prefix"]', action: 'click' }, personalLabel: { selector: '#header__root [data-header-config="top_nav.label=Personal"]', action: 'click' }, joinUsButtonDesktop: { selector: '#header__root [data-header-config="buttons.device=desktop"]', action: 'click' }, signInButtonMobile: { selector: '#header__root [data-header-config="buttons.device=mobile"]', action: 'click' }, signInButtonDesktop: { selector: '#header__root [data-header-config="buttons.device=desktop"]:nth-child(3)', action: 'click' }, joinUsButtonSecondary: { selector: '#header__root [data-header-config="buttons.type=secondary"]', action: 'click' }, electricityMenu: { selector: 'Electricity', action: 'click' }, gasMenu: { selector: 'Gas', action: 'click' }, broadbandMenu: { selector: 'Broadband', action: 'click' }, mobileMenu: { selector: 'Mobile', action: 'click' }, supportMenu: { selector: 'Support', action: 'click' }, businessMenu: { selector: 'Business', action: 'click' }, electricityTab: { selector: 'a[data-testid="electricity-tab"]', action: 'click' }, gasTab: { selector: 'a[data-testid="gas-tab"]', action: 'click' }, supportTab: { selector: 'a[data-testid="support-tab"]', action: 'click' }, investorsTab: { selector: 'a[data-testid="investors-tab"]', action: 'click' }, aboutUsTab: { selector: 'a[data-testid="about-us-tab"]', action: 'click' }, broadbandTab: { selector: 'div:nth-child(1) > div > div > div:nth-child(2) > div:nth-child(2) > div:nth-child(3)', action: 'click' }, mobileTab: { selector: 'div:nth-child(1) > div > div > div:nth-child(2) > div:nth-child(2) > div:nth-child(4)', action: 'click' }, joinUsButton: { selector: 'div:nth-child(1) > div > div > div:nth-child(2) > div:nth-child(2) > div:nth-child(6) > button:nth-child(1)', action: 'click' }, signInButton: { selector: 'div:nth-child(1) > div > div > div:nth-child(2) > div:nth-child(2) > div:nth-child(6) > button:nth-child(2)', action: 'click' }, dismissButton: { selector: 'button#7160_7/1/2025 1:45:18 AM', action: 'click' }, heroBanner: { selector: '.hero-banner-container', action: 'click' }, payBillQuicklink: { selector: 'a[data-gtm-quicklink="Pay bill"]', action: 'click' }, movingHouseQuicklink: { selector: 'a[data-gtm-quicklink="Moving house"]', action: 'click' }, allPlansQuicklink: { selector: 'a[data-gtm-quicklink="All plans"]', action: 'click' }, joinUsQuicklink: { selector: 'a[data-gtm-quicklink="Join us"]', action: 'click' }, addPropertyQuicklink: { selector: 'a[data-gtm-quicklink="Add property"]', action: 'click' }, changePlanQuicklink: { selector: 'a[data-gtm-quicklink="Change plan"]', action: 'click' }, enjoyFreePowerTile: { selector: 'div#TL_BlazingAheadWithImprovements-f6uaf8ym', action: 'click' }, needHelpSigningUpTile: { selector: 'div#TL_NeedHelpSigningUp_Link_support_guides_joining-pssz1xcz', action: 'click' }, needHelpHeading: { selector: 'h4.tile-heading.heading-red', action: 'click' }, needHelpBody: { selector: 'div.tile-body.paragraph-black', action: 'click' }, findOutMoreButton: { selector: 'button.tile-button.button-outline-red', action: 'click' }, }; class LandingPage { constructor(page) { this.page = page; this.selectors = Object.fromEntries(Object.entries(selectors).map(([key, val]) => [key, val.selector])); } async clickHeaderRoot() { Logger_js_1.Logger.log("In clickHeaderRoot"); await this.page.locator(this.selectors.headerRoot).click(); } async clickLogoDesktop() { Logger_js_1.Logger.log("In clickLogoDesktop"); await this.page.locator(this.selectors.logoDesktop).click(); } async clickLogoMobile() { Logger_js_1.Logger.log("In clickLogoMobile"); await this.page.locator(this.selectors.logoMobile).click(); } async clickTopNavLinkLabelPrefix() { Logger_js_1.Logger.log("In clickTopNavLinkLabelPrefix"); await this.page.locator(this.selectors.topNavLinkLabelPrefix).click(); } async clickPersonalLabel() { Logger_js_1.Logger.log("In clickPersonalLabel"); await this.page.locator(this.selectors.personalLabel).click(); } async clickJoinUsButtonDesktop() { Logger_js_1.Logger.log("In clickJoinUsButtonDesktop"); await this.page.locator(this.selectors.joinUsButtonDesktop).click(); } async clickSignInButtonMobile() { Logger_js_1.Logger.log("In clickSignInButtonMobile"); await this.page.locator(this.selectors.signInButtonMobile).click(); } async clickSignInButtonDesktop() { Logger_js_1.Logger.log("In clickSignInButtonDesktop"); await this.page.locator(this.selectors.signInButtonDesktop).click(); } async clickJoinUsButtonSecondary() { Logger_js_1.Logger.log("In clickJoinUsButtonSecondary"); await this.page.locator(this.selectors.joinUsButtonSecondary).click(); } async clickElectricityMenu() { Logger_js_1.Logger.log("In clickElectricityMenu"); await this.page.locator(this.selectors.electricityMenu).click(); } async clickGasMenu() { Logger_js_1.Logger.log("In clickGasMenu"); await this.page.locator(this.selectors.gasMenu).click(); } async clickBroadbandMenu() { Logger_js_1.Logger.log("In clickBroadbandMenu"); await this.page.locator(this.selectors.broadbandMenu).click(); } async clickMobileMenu() { Logger_js_1.Logger.log("In clickMobileMenu"); await this.page.locator(this.selectors.mobileMenu).click(); } async clickSupportMenu() { Logger_js_1.Logger.log("In clickSupportMenu"); await this.page.locator(this.selectors.supportMenu).click(); } async clickBusinessMenu() { Logger_js_1.Logger.log("In clickBusinessMenu"); await this.page.locator(this.selectors.businessMenu).click(); } async clickElectricityTab() { Logger_js_1.Logger.log("In clickElectricityTab"); await this.page.locator(this.selectors.electricityTab).click(); } async clickGasTab() { Logger_js_1.Logger.log("In clickGasTab"); await this.page.locator(this.selectors.gasTab).click(); } async clickSupportTab() { Logger_js_1.Logger.log("In clickSupportTab"); await this.page.locator(this.selectors.supportTab).click(); } async clickInvestorsTab() { Logger_js_1.Logger.log("In clickInvestorsTab"); await this.page.locator(this.selectors.investorsTab).click(); } async clickAboutUsTab() { Logger_js_1.Logger.log("In clickAboutUsTab"); await this.page.locator(this.selectors.aboutUsTab).click(); } async clickBroadbandTab() { Logger_js_1.Logger.log("In clickBroadbandTab"); await this.page.locator(this.selectors.broadbandTab).click(); } async clickMobileTab() { Logger_js_1.Logger.log("In clickMobileTab"); await this.page.locator(this.selectors.mobileTab).click(); } async clickJoinUsButton() { Logger_js_1.Logger.log("In clickJoinUsButton"); await this.page.locator(this.selectors.joinUsButton).click(); } async clickSignInButton() { Logger_js_1.Logger.log("In clickSignInButton"); await this.page.locator(this.selectors.signInButton).click(); } async clickDismissButton() { Logger_js_1.Logger.log("In clickDismissButton"); await this.page.locator(this.selectors.dismissButton).click(); } async clickHeroBanner() { Logger_js_1.Logger.log("In clickHeroBanner"); await this.page.locator(this.selectors.heroBanner).click(); } async clickPayBillQuicklink() { Logger_js_1.Logger.log("In clickPayBillQuicklink"); await this.page.locator(this.selectors.payBillQuicklink).click(); } async clickMovingHouseQuicklink() { Logger_js_1.Logger.log("In clickMovingHouseQuicklink"); await this.page.locator(this.selectors.movingHouseQuicklink).click(); } async clickAllPlansQuicklink() { Logger_js_1.Logger.log("In clickAllPlansQuicklink"); await this.page.locator(this.selectors.allPlansQuicklink).click(); } async clickJoinUsQuicklink() { Logger_js_1.Logger.log("In clickJoinUsQuicklink"); await this.page.locator(this.selectors.joinUsQuicklink).click(); } async clickAddPropertyQuicklink() { Logger_js_1.Logger.log("In clickAddPropertyQuicklink"); await this.page.locator(this.selectors.addPropertyQuicklink).click(); } async clickChangePlanQuicklink() { Logger_js_1.Logger.log("In clickChangePlanQuicklink"); await this.page.locator(this.selectors.changePlanQuicklink).click(); } async clickEnjoyFreePowerTile() { Logger_js_1.Logger.log("In clickEnjoyFreePowerTile"); await this.page.locator(this.selectors.enjoyFreePowerTile).click(); } async clickNeedHelpSigningUpTile() { Logger_js_1.Logger.log("In clickNeedHelpSigningUpTile"); await this.page.locator(this.selectors.needHelpSigningUpTile).click(); } async clickNeedHelpHeading() { Logger_js_1.Logger.log("In clickNeedHelpHeading"); await this.page.locator(this.selectors.needHelpHeading).click(); } async clickNeedHelpBody() { Logger_js_1.Logger.log("In clickNeedHelpBody"); await this.page.locator(this.selectors.needHelpBody).click(); } async clickFindOutMoreButton() { Logger_js_1.Logger.log("In clickFindOutMoreButton"); await this.page.locator(this.selectors.findOutMoreButton).click(); } } exports.LandingPage = LandingPage;