Skip to content

Commit aa5d76c

Browse files
committed
Protected_Locators
1 parent f734da9 commit aa5d76c

10 files changed

+137
-141
lines changed

package-lock.json

Lines changed: 104 additions & 104 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@
2323
"author": "Akshay Pai",
2424
"license": "MIT",
2525
"dependencies": {
26-
"@playwright/test": "^1.23.2",
26+
"@playwright/test": "^1.24.0",
2727
"@types/adm-zip": "^0.5.0",
2828
"@types/crypto-js": "^4.1.1",
29-
"@typescript-eslint/eslint-plugin": "^5.30.5",
30-
"@typescript-eslint/parser": "^5.30.5",
29+
"@typescript-eslint/eslint-plugin": "^5.31.0",
30+
"@typescript-eslint/parser": "^5.31.0",
3131
"adm-zip": "^0.5.9",
3232
"cross-env": "^7.0.3",
3333
"crypto-js": "^4.1.1",
34-
"eslint": "^8.19.0",
34+
"eslint": "^8.20.0",
3535
"eslint-plugin-import": "^2.26.0",
3636
"exceljs": "^4.3.0",
3737
"experimental-allure-playwright": "0.0.3",
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export class LoginPageObjects {
2-
EMAIL_EDITBOX_ID = `#email`;
3-
PASSWORD_EDITBOX_ID = `#passwd`;
4-
SIGN_IN_BUTTON_ID = `#SubmitLogin`;
2+
protected static EMAIL_EDITBOX_ID = `#email`;
3+
protected static PASSWORD_EDITBOX_ID = `#passwd`;
4+
protected static SIGN_IN_BUTTON_ID = `#SubmitLogin`;
55
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export class MyAccountPageObjects {
2-
MY_ACCOUNT_HDR_XPATH = `//h1[contains(text(),'My account')]`;
3-
MY_ACCOUNT_LINKS_XPATH = `//span[contains(text(),'linkName')]`;
4-
MY_ACCOUNT_FOLLOW_FB_LINK_XPATH="//span[text()='Facebook']/..";
5-
MY_ACCOUNT_FB_MEMBERS_LINK_XPATH=`//a[contains(text(),'members')]`;
2+
protected static MY_ACCOUNT_HDR_XPATH = `//h1[contains(text(),'My account')]`;
3+
protected static MY_ACCOUNT_LINKS_XPATH = `//span[contains(text(),'linkName')]`;
4+
protected static MY_ACCOUNT_FOLLOW_FB_LINK_XPATH="//span[text()='Facebook']/..";
5+
protected static MY_ACCOUNT_FB_MEMBERS_LINK_XPATH=`//a[contains(text(),'members')]`;
66
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export class MyAddressesPageObjects {
2-
MY_ADDRESSES_HDR_XPATH = `//h1[contains(text(),'My addresses')]`;
3-
ADDRESS_DETAILS_XPATH = `//h3[contains(text(),'qwert')]`;
2+
protected static MY_ADDRESSES_HDR_XPATH = `//h1[contains(text(),'My addresses')]`;
3+
protected static ADDRESS_DETAILS_XPATH = `//h3[contains(text(),'qwert')]`;
44
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export class MyPersonalInformationPageObjects {
2-
MY_PERSONAL_INFO_HDR_XPATH = `//h1[contains(text(),'Your personal information')]`;
3-
FIRST_NAME_ID = `#firstname`;
2+
protected static MY_PERSONAL_INFO_HDR_XPATH = `//h1[contains(text(),'Your personal information')]`;
3+
protected static FIRST_NAME_ID = `#firstname`;
44
}

pageFactory/pageRepository/LoginPage.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,23 @@ import {testConfig} from '../../testConfig';
55

66
let webActions: WebActions;
77

8-
export class LoginPage {
8+
export class LoginPage extends LoginPageObjects{
99
readonly page: Page;
1010

1111
constructor(page: Page) {
12+
super();
1213
this.page = page;
1314
webActions = new WebActions(this.page);
1415
}
1516

16-
loginPageObjects = new LoginPageObjects();
17-
1817
async navigateToURL(): Promise<void> {
1918
await webActions.navigateToURL(`/index.php?controller=authentication&back=my-account`);
2019
}
2120

2221
async loginToApplication(): Promise<void> {
2322
const decipherPassword = await webActions.decipherPassword();
24-
await webActions.enterElementText(this.loginPageObjects.EMAIL_EDITBOX_ID, testConfig.username);
25-
await webActions.enterElementText(this.loginPageObjects.PASSWORD_EDITBOX_ID, decipherPassword);
26-
await webActions.clickElement(this.loginPageObjects.SIGN_IN_BUTTON_ID);
23+
await webActions.enterElementText(LoginPageObjects.EMAIL_EDITBOX_ID, testConfig.username);
24+
await webActions.enterElementText(LoginPageObjects.PASSWORD_EDITBOX_ID, decipherPassword);
25+
await webActions.clickElement(LoginPageObjects.SIGN_IN_BUTTON_ID);
2726
}
2827
}

pageFactory/pageRepository/MyAccountPage.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,25 @@ import type { BrowserContext, Page } from '@playwright/test';
44

55
let webActions: WebActions;
66

7-
export class MyAccountPage {
7+
export class MyAccountPage extends MyAccountPageObjects{
88
readonly page: Page;
99

1010
constructor(page: Page) {
11+
super();
1112
this.page = page;
1213
webActions = new WebActions(this.page);
1314
}
1415

15-
myAccountPageObjects = new MyAccountPageObjects();
16-
1716
async verifyMyAccountHeader(): Promise<void> {
18-
await webActions.verifyElementText(this.myAccountPageObjects.MY_ACCOUNT_HDR_XPATH, `My account`);
17+
await webActions.verifyElementText(MyAccountPageObjects.MY_ACCOUNT_HDR_XPATH, `My account`);
1918
}
2019

2120
async clickOnMyAccountLinks(linkName: string): Promise<void> {
22-
await webActions.clickElement(this.myAccountPageObjects.MY_ACCOUNT_LINKS_XPATH.replace(`linkName`, linkName));
21+
await webActions.clickElement(MyAccountPageObjects.MY_ACCOUNT_LINKS_XPATH.replace(`linkName`, linkName));
2322
}
2423

2524
async verifyFollowUsFBWindowAndClickMembers(context: BrowserContext, urlText: string): Promise<void> {
26-
await webActions.verifyNewWindowUrlAndClick(context, this.myAccountPageObjects.MY_ACCOUNT_FOLLOW_FB_LINK_XPATH, urlText,this.myAccountPageObjects.MY_ACCOUNT_FB_MEMBERS_LINK_XPATH);
25+
await webActions.verifyNewWindowUrlAndClick(context, MyAccountPageObjects.MY_ACCOUNT_FOLLOW_FB_LINK_XPATH, urlText,MyAccountPageObjects.MY_ACCOUNT_FB_MEMBERS_LINK_XPATH);
2726
}
2827

2928
}

pageFactory/pageRepository/MyAddressesPage.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,20 @@ import type { Page } from '@playwright/test';
44

55
let webActions: WebActions;
66

7-
export class MyAddressesPage {
7+
export class MyAddressesPage extends MyAddressesPageObjects{
88
readonly page: Page;
99

1010
constructor(page: Page) {
11+
super();
1112
this.page = page;
1213
webActions = new WebActions(this.page);
1314
}
1415

15-
myAddressesPageObjects = new MyAddressesPageObjects();
16-
1716
async verifyMyAddressesHeader(): Promise<void> {
18-
await webActions.verifyElementText(this.myAddressesPageObjects.MY_ADDRESSES_HDR_XPATH, `My addresses`);
17+
await webActions.verifyElementText(MyAddressesPageObjects.MY_ADDRESSES_HDR_XPATH, `My addresses`);
1918
}
2019

2120
async verifyAdressDetails(): Promise<void> {
22-
await webActions.verifyElementText(this.myAddressesPageObjects.ADDRESS_DETAILS_XPATH, `qwert`);
21+
await webActions.verifyElementText(MyAddressesPageObjects.ADDRESS_DETAILS_XPATH, `qwert`);
2322
}
2423
}

pageFactory/pageRepository/MyPersonalInformationPage.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,20 @@ import type { Page } from '@playwright/test';
44

55
let webActions: WebActions;
66

7-
export class MyPersonalInformationPage {
7+
export class MyPersonalInformationPage extends MyPersonalInformationPageObjects{
88
readonly page: Page;
99

1010
constructor(page: Page) {
11+
super();
1112
this.page = page;
1213
webActions = new WebActions(this.page);
1314
}
1415

15-
myPersonalInformationPageObjects = new MyPersonalInformationPageObjects();
16-
1716
async verifyMyPersonalInfoHeader(): Promise<void> {
18-
await webActions.verifyElementText(this.myPersonalInformationPageObjects.MY_PERSONAL_INFO_HDR_XPATH, `Your personal information`);
17+
await webActions.verifyElementText(MyPersonalInformationPageObjects.MY_PERSONAL_INFO_HDR_XPATH, `Your personal information`);
1918
}
2019

2120
async verifyFirstName(firstName: string): Promise<void> {
22-
await webActions.verifyJSElementValue(this.myPersonalInformationPageObjects.FIRST_NAME_ID, firstName);
21+
await webActions.verifyJSElementValue(MyPersonalInformationPageObjects.FIRST_NAME_ID, firstName);
2322
}
2423
}

0 commit comments

Comments
 (0)