From 1674649178dc94fd86f1a5cdb5059fdf7a031cb5 Mon Sep 17 00:00:00 2001 From: najeeb1023 Date: Wed, 19 Jun 2024 00:22:05 +0200 Subject: [PATCH 1/2] random_itemSelection --- src/test/features/UserShopping.feature | 5 ++++- src/test/pages/UserShopping.ts | 29 ++++++-------------------- src/test/steps/userShopping.ts | 6 +++++- 3 files changed, 15 insertions(+), 25 deletions(-) diff --git a/src/test/features/UserShopping.feature b/src/test/features/UserShopping.feature index d040722..ca3bbcf 100644 --- a/src/test/features/UserShopping.feature +++ b/src/test/features/UserShopping.feature @@ -7,15 +7,18 @@ Feature: Verify that the user is able to purchase some item. Background: User is landed on the webpage. Given The user lands at the webpage. + @MenShopping Scenario: User shops for Men Jackets. When The user clicks on the "
" section. And The user clicks on "" option. - Then The products are shown. + And The products are shown. + And User navigates to a product. Examples: | Section | Attire | | Men | Tees | + @WomenShopping Scenario: User shops for Women Jackets. When The user clicks on the "
" section. And The user clicks on "" option. diff --git a/src/test/pages/UserShopping.ts b/src/test/pages/UserShopping.ts index 63c8cb0..72e60bb 100644 --- a/src/test/pages/UserShopping.ts +++ b/src/test/pages/UserShopping.ts @@ -33,13 +33,6 @@ export class MenSection { const el = await pageFixture.page.locator(getResource('attireSectionBtn').selectorValue.replace('FLAG', attire)); await el.click(); }; - // for (let i=0;i<=getAttireOptions;i++){ - // console.log(getAttireOptions); - // }; - // const getCountAttire = pageFixture.page.locator(getResource('attireSectionBtn').selectorValue.replace('FLAG', attire)) - // await this.menSectionLocators.menAttire().innerText().then(value => console.log(value)) - // const el = await expect(this.menSectionLocators.menAttire()).toContainText(attire).then(value => console.log(value)) - // console.log(el) }; public async showItems():Promise{ @@ -47,26 +40,16 @@ export class MenSection { process.stdout.write(' Products shown -> ' + getNumberOfProducts + '\n'); for(let i=1;i<=getNumberOfProducts;i++){ const getEl = await pageFixture.page.locator(getResource('itemsShown').selectorValue.replace('FLAG', i.toString())).allTextContents(); - // for (const text of getEl) { - // const firstLine = text.split('\n')[1].trim(); - // const getItem = await getEl; - // process.stdout.write(` ${firstLine}${getItem}`); - // }; for (const text of getEl) { - // const getItem = await getEl; - // process.stdout.write(` Item ${i} -> ${getItem}${firstLine}\n`); console.log(' '+i +")" + " " + text.trim()); }; - - // console.log(getEl) }; - - - // for(let i=0;i<=getNumberOfProducts;i++){ - // await pageFixture.page.locator(getResource('productsShown').selectorValue.replace('FLAG', i.toString())).textContent(); - // const showCount = await this.menSectionLocators.itemsShown().textContent(); - // console.log(showCount); - // }; }; + public async selecRandomItem():Promise{ + const getNumberOfProducts = await this.menSectionLocators.productShown().count(); + let ind: number = Math.floor(Math.random() * getNumberOfProducts); + await pageFixture.page.locator(getResource('itemsShown').selectorValue.replace('FLAG', `${ind}`)).dblclick(); + + }; }; \ No newline at end of file diff --git a/src/test/steps/userShopping.ts b/src/test/steps/userShopping.ts index 54e73a1..4b54ee5 100644 --- a/src/test/steps/userShopping.ts +++ b/src/test/steps/userShopping.ts @@ -13,6 +13,10 @@ When("The user clicks on {string} option.", async function (attire: string){ await menSection.goToAttire(attire); }); -Then("The products are shown.", async function (){ +When("The products are shown.", async function (){ await menSection.showItems(); +}); + +When("User navigates to a product.", async function (){ + await menSection.selecRandomItem(); }); \ No newline at end of file From 8193f0f75cfc82570e8f0d1a15fc8d8d74eabdb7 Mon Sep 17 00:00:00 2001 From: najeeb1023 Date: Wed, 19 Jun 2024 00:25:19 +0200 Subject: [PATCH 2/2] feature: random_itemSelection WIP. --- src/test/pages/UserShopping.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/test/pages/UserShopping.ts b/src/test/pages/UserShopping.ts index 72e60bb..4388829 100644 --- a/src/test/pages/UserShopping.ts +++ b/src/test/pages/UserShopping.ts @@ -49,7 +49,10 @@ export class MenSection { public async selecRandomItem():Promise{ const getNumberOfProducts = await this.menSectionLocators.productShown().count(); let ind: number = Math.floor(Math.random() * getNumberOfProducts); + if (ind == 0) { + Math.floor(Math.random() * getNumberOfProducts); + } else { await pageFixture.page.locator(getResource('itemsShown').selectorValue.replace('FLAG', `${ind}`)).dblclick(); - + }; }; }; \ No newline at end of file