diff --git a/src/test/features/UserShoppingByWear.feature b/src/test/features/UserShoppingByWear.feature index b6666e9..984a9e6 100644 --- a/src/test/features/UserShoppingByWear.feature +++ b/src/test/features/UserShoppingByWear.feature @@ -14,6 +14,7 @@ Feature: Verify that the user is able to purchase some item. And The details of the product are shown and user adds the product in their cart. And User navigates to checkout page. And User enters "", "", "", "
", "", "", "", "" and "" + And User selects a shipping method. Examples: | Section | Attire | EmailAddress | FirstName | LastName | Address | City | State | ZipCode | Country | PhoneNumber | @@ -26,6 +27,7 @@ Feature: Verify that the user is able to purchase some item. And The details of the product are shown and user adds the product in their cart. And User navigates to checkout page. And User enters "", "", "", "
", "", "", "", "" and "" + And User selects a shipping method. Examples: | Section | Attire | EmailAddress | FirstName | LastName | Address | City | State | ZipCode | Country | PhoneNumber | diff --git a/src/test/pages/UserShoppingByWear.ts b/src/test/pages/UserShoppingByWear.ts index 6002053..530dc1f 100644 --- a/src/test/pages/UserShoppingByWear.ts +++ b/src/test/pages/UserShoppingByWear.ts @@ -40,7 +40,11 @@ import { Page, expect } from "@playwright/test"; public async enterUserCheckoutDetails(emailAddress: string, firstName: string, lastName: string, streetAddress: string, city: string, state: string, zipcode: string, country: string, phoneNumber: string){ await this.userShoppingByWear.fillCheckoutForm(emailAddress, firstName, lastName, streetAddress, city, state, zipcode, country, phoneNumber); - } + }; + + public async shippingMethodSelection(){ + await this.userShoppingByWear.selectShippingMethod(); + }; }; export class UserShoppingByWear { @@ -79,7 +83,8 @@ import { Page, expect } from "@playwright/test"; zipCode:() => pageFixture.page.locator(getResource('zipCode').selectorValue), country:() => pageFixture.page.locator(getResource('country').selectorValue), phoneNumber:() => pageFixture.page.locator(getResource('phoneNumber').selectorValue), - nextBtn:() => pageFixture.page.locator(getResource('nextBtn').selectorValue) + nextBtn:() => pageFixture.page.locator(getResource('nextBtn').selectorValue), + selectShippingBtn:() => pageFixture.page.locator(getResource('selectShippingBtn').selectorValue) }; @@ -199,4 +204,12 @@ import { Page, expect } from "@playwright/test"; await this.userShoppingByWearByWearLocators.nextBtn().scrollIntoViewIfNeeded(); await this.userShoppingByWearByWearLocators.nextBtn().click(); }; + + public async selectShippingMethod():Promise { + // await this.userShoppingByWearByWearLocators.selectShippingBtn() + const getShippingMethods = await this.userShoppingByWearByWearLocators.selectShippingBtn().count(); + console.log("Shipping methods found -> ", getShippingMethods); + + // await (pageFixture.page.locator(getResource('selectShippingBtn').selectorValue.replace('FLAG', 'tes1'))); + }; }; \ No newline at end of file diff --git a/src/test/resources/userShoppingPageByWear.json b/src/test/resources/userShoppingPageByWear.json index 100d787..de21225 100644 --- a/src/test/resources/userShoppingPageByWear.json +++ b/src/test/resources/userShoppingPageByWear.json @@ -109,6 +109,10 @@ { "elementName": "nextBtn", "selectorValue": "//button[contains(@class,'button action continue primary')]" + }, + { + "elementName": "selectShippingBtn", + "selectorValue": "//tbody//tr" } ] } \ No newline at end of file diff --git a/src/test/steps/userShoppingByWearStepDef.ts b/src/test/steps/userShoppingByWearStepDef.ts index 390dffd..0d8577f 100644 --- a/src/test/steps/userShoppingByWearStepDef.ts +++ b/src/test/steps/userShoppingByWearStepDef.ts @@ -22,6 +22,10 @@ When("User navigates to checkout page.", async function (){ await categoryAndProductSectionFacade.userItemCheckout(); }); -Then("User enters {string}, {string}, {string}, {string}, {string}, {string}, {string}, {string} and {string}", async function (emailAddress: string, firstName: string, lastName: string, streetAddress: string, city: string, state: string, zipcode: string, country: string, phoneNumber: string){ +When("User enters {string}, {string}, {string}, {string}, {string}, {string}, {string}, {string} and {string}", async function (emailAddress: string, firstName: string, lastName: string, streetAddress: string, city: string, state: string, zipcode: string, country: string, phoneNumber: string){ await categoryAndProductSectionFacade.enterUserCheckoutDetails(emailAddress, firstName, lastName, streetAddress, city, state, zipcode, country, phoneNumber); }); + +When("User selects a shipping method.", async function () { + await categoryAndProductSectionFacade.shippingMethodSelection(); +});