How to stop browser from reopening every time the the every test statement is done? I mean the code below is supposedly in 1 page continuing. Why is it the browser closes, open again and execute the second test. How to prevent that? Thanks
test('When user logs in', async ({page}) => {
const commonAction = new CommonAction();
await commonAction.gotoPage(page);
await expect(page).toHaveURL('https://uat.mercator.createit.dev/login');
await commonAction.login( page, janEmail, janPasswd );
});
test('Then user is in my account page', async ({page}) => {
const navigationAction = new NavigationAction();
await navigationAction.verifyAccountPage(page);
});
test('When user goes to newsletter subscriptions', async ({page}) => {
const navigationAction = new NavigationAction();
await navigationAction.goToNewsSubscription(page);
});
test('Then user is in Newsletter subscription page', async ({page}) => {
const navigationAction = new NavigationAction();
await navigationAction.verifyNewsletterPage(page);
});
test('When user updates subscription', async ({page}) => {
const newsletterAction = new NewsletterAction();
newsletterAction.subscribe(page);
});
test('Then user is redirected to My Account page after subscription updates', async ({page}) => {
const navigationAction = new NavigationAction();
await navigationAction.verifyAccountPage();
});
})```
For the tests that share the same page and rely on the previous test results you need to wrap them in test.describe.serial and initialize the page in beforeAll, see this guide for more information.
Your example would look like this:
const { test } = require('@playwright/test');
test.describe.serial('use the same page', () => {
/** @type {import('@playwright/test').Page} */
let page;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
});
test.afterAll(async () => {
await page.close();
});
test('When user logs in', async ({}) => {
const commonAction = new CommonAction();
await commonAction.gotoPage(page);
await expect(page).toHaveURL('https://uat.mercator.createit.dev/login');
await commonAction.login( page, janEmail, janPasswd );
});
test('Then user is in my account page', async ({}) => {
const navigationAction = new NavigationAction();
await navigationAction.verifyAccountPage(page);
});
test('When user goes to newsletter subscriptions', async ({}) => {
const navigationAction = new NavigationAction();
await navigationAction.goToNewsSubscription(page);
});
test('Then user is in Newsletter subscription page', async ({}) => {
const navigationAction = new NavigationAction();
await navigationAction.verifyNewsletterPage(page);
});
test('When user updates subscription', async ({}) => {
const newsletterAction = new NewsletterAction();
newsletterAction.subscribe(page);
});
test('Then user is redirected to My Account page after subscription updates', async ({}) => {
const navigationAction = new NavigationAction();
await navigationAction.verifyAccountPage();
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With