Best JavaScript code snippet using playwright-internal
TestProducts.js
Source:TestProducts.js
1const LoginPage = require('../pageobjects/login.page.js');2const ProductsPage = require('../pageobjects/products.page.js');3describe('products page should open correctly', () => {4 beforeAll('open browser', () => {5 LoginPage.open();6 browser.pause(1000);7 });8 it('enter valid data in login page', () => {9 LoginPage.inputUsername.setValue('standard_user');10 LoginPage.inputPassword.setValue('secret_sauce');11 LoginPage.loginButton.click();12 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory.html');13 });14});15describe('When clicking on foto items, corresponding page should open corrrectly', () => {16 it('Clicking on foto of product 1', () => {17 ProductsPage.fotoItem1.click();18 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=4');19 browser.back();20 });21 it('Clicking on foto of product 2', () => {22 ProductsPage.fotoItem2.click();23 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=0');24 browser.back();25 });26 it('Clicking on foto of product 3', () => {27 ProductsPage.fotoItem3.click();28 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=1');29 browser.back();30 });31 it('Clicking on foto of product 4', () => {32 ProductsPage.fotoItem4.click();33 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=5');34 browser.back();35 });36 it('Clicking on foto of product 5', () => {37 ProductsPage.fotoItem5.click();38 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=2');39 browser.back();40 });41 it('Clicking on foto of product 6', () => {42 ProductsPage.fotoItem6.click();43 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=3');44 browser.back();45 });46});47describe('When clicking on product title, corresponding page should open corrrectly', () => {48 it('Clicking on title of product 1', () => {49 ProductsPage.productTitle1.click();50 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=4');51 browser.back();52 });53 it('Clicking on title of product 2', () => {54 ProductsPage.productTitle2.click();55 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=0');56 browser.back();57 });58 it('Clicking on title of product 3', () => {59 ProductsPage.productTitle3.click();60 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=1');61 browser.back();62 });63 it('Clicking on title of product 4', () => {64 ProductsPage.productTitle4.click();65 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=5');66 browser.back();67 });68 it('Clicking on title of product 5', () => {69 ProductsPage.productTitle5.click();70 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=2');71 browser.back();72 });73 it('Clicking on title of product 6', () => {74 ProductsPage.productTitle6.click();75 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory-item.html?id=3');76 browser.back();77 });78});79describe('When clicking on "add to cart" button, cart should be increased with 1', () => {80 it('Clicking on "ADD TO CART" of product 1', () => {81 ProductsPage.addToCartPr1.click();82 expect(ProductsPage.cartContainer).toHaveText('1');83 });84 it('Clicking on "ADD TO CART" of product 2', () => {85 ProductsPage.addToCartPr2.click();86 expect(ProductsPage.cartContainer).toHaveText('2');87 });88 it('Clicking on "ADD TO CART" of product 3', () => {89 ProductsPage.addToCartPr3.click();90 expect(ProductsPage.cartContainer).toHaveText('3');91 });92 it('Clicking on "ADD TO CART" of product 4', () => {93 ProductsPage.addToCartPr4.click();94 expect(ProductsPage.cartContainer).toHaveText('4');95 });96 it('Clicking on "ADD TO CART" of product 5', () => {97 ProductsPage.addToCartPr5.click();98 expect(ProductsPage.cartContainer).toHaveText('5');99 });100 it('Clicking on "ADD TO CART" of product 6', () => {101 ProductsPage.addToCartPr6.click();102 expect(ProductsPage.cartContainer).toHaveText('6');103 });104});105describe('When clicking on "REMOVE" button, cart should be decreased with 1', () => {106 it('Clicking on "REMOVE" of product 1', () => {107 ProductsPage.removeFromCartPr1.click();108 expect(ProductsPage.cartContainer).toHaveText('5');109 });110 it('Clicking on "REMOVE" of product 2', () => {111 ProductsPage.removeFromCartPr2.click();112 expect(ProductsPage.cartContainer).toHaveText('4');113 });114 it('Clicking on "REMOVE" of product 3', () => {115 ProductsPage.removeFromCartPr3.click();116 expect(ProductsPage.cartContainer).toHaveText('3');117 });118 it('Clicking on "REMOVE" of product 4', () => {119 ProductsPage.removeFromCartPr4.click();120 expect(ProductsPage.cartContainer).toHaveText('2');121 });122 it('Clicking on "REMOVE" of product 5', () => {123 ProductsPage.removeFromCartPr5.click();124 expect(ProductsPage.cartContainer).toHaveText('1');125 });126 it('Clicking on "REMOVE" of product 6', () => {127 ProductsPage.removeFromCartPr6.click();128 expect(ProductsPage.cartContainer).toHaveText('');129 });130});131describe('When clicking sort menu, it should sort the products by name or price', () => {132 it('Clicking on NAME (A TO Z)', () => {133 ProductsPage.sortByBtn.click();134 ProductsPage.sortByNameAz.click();135 expect(ProductsPage.sortByNameAz).toHaveText('Name (A to Z)');136 });137 it('Clicking on NAME (Z TO A)', () => {138 ProductsPage.sortByBtn.click();139 ProductsPage.sortByNameZa.click();140 expect(ProductsPage.sortByNameZa).toHaveText('Name (Z to A)');141 });142 it('Clicking on PRICE (low to high)', () => {143 ProductsPage.sortByBtn.click();144 ProductsPage.sortByPriceLoHi.click();145 expect(ProductsPage.sortByPriceLoHi).toHaveText('Price (low to high)');146 });147 it('Clicking on PRICE (high to low)', () => {148 ProductsPage.sortByBtn.click();149 ProductsPage.sortByPriceHiLo.click();150 expect(ProductsPage.sortByPriceHiLo).toHaveText('Price (high to low)');151 });152});153describe('test cart container button', () => {154 it('Clicking on cart container button', () => {155 ProductsPage.cartContainer.click();156 expect(browser).toHaveUrl('https://www.saucedemo.com/cart.html');157 browser.back();158 });159});160describe('When clicking on burger button, nav bar should show', () => {161 it('Clicking on Burger button', () => {162 ProductsPage.burgerBtn.click()163 expect(ProductsPage.sideBar).toBeDisplayed();164 });165 it('Clicking on the cross of nav bar', () => {166 ProductsPage.burgerBtnCross.click();167 expect(ProductsPage.sideBar).not.toBeDisplayed();168 });169 it('Clicking on All Items', () => {170 ProductsPage.burgerBtn.click();171 ProductsPage.allItemsBtn.click();172 expect(browser).toHaveUrl('https://www.saucedemo.com/inventory.html');173 ProductsPage.burgerBtnCross.click();174 });175 it('Clicking on About', () => {176 ProductsPage.burgerBtn.click();177 ProductsPage.aboutBtn.click();178 expect(browser).toHaveUrl('https://saucelabs.com/');179 browser.back();180 });181 it('Clicking on Reset app state', () => {182 ProductsPage.burgerBtn.click();183 ProductsPage.addToCartPr2.click();184 ProductsPage.addToCartPr4.click();185 ProductsPage.resetBtn.click();186 expect(ProductsPage.cartContainer).toHaveText('');187 ProductsPage.burgerBtnCross.click();188 });189 it('Clicking on Logout', () => {190 ProductsPage.burgerBtn.click();191 ProductsPage.logOutBtn.click();192 expect(browser).toHaveUrl('https://www.saucedemo.com/');193 });...
toHaveURL.test.js
Source:toHaveURL.test.js
...28 mockThingFrom("https://example.com/thing"),29 foaf.name,30 expectedValue31 );32 const { pass, message } = toHaveURL(thing);33 expect(pass).toBe(false);34 expect(message()).toEqual("You must provide a URL predicate");35 });36 it("passes when the given thing has the expected predicate", () => {37 const expectedValue = "https://example.com";38 const thing = setUrl(39 mockThingFrom("https://example.com/thing"),40 foaf.homepage,41 expectedValue42 );43 const { pass } = toHaveURL(thing, foaf.homepage);44 expect(pass).toBe(true);45 });46 it("passes when the given thing has the expected predicate with the expected value", () => {47 const expectedValue = "https://example.com";48 const thing = setUrl(49 mockThingFrom("https://example.com/thing"),50 foaf.homepage,51 expectedValue52 );53 const { pass } = toHaveURL(thing, foaf.homepage, expectedValue);54 expect(pass).toBe(true);55 });56 it("handles multiple values", () => {57 const value = "https://example.com/value";58 const value2 = "https://example.com/value2";59 const thing = setUrl(60 setUrl(mockThingFrom("https://example.com/thing"), foaf.homepage, value),61 foaf.homepage,62 value263 );64 const { pass } = toHaveURL(thing, foaf.homepage, value2);65 expect(pass).toBe(true);66 });67 it("fails when the given thing does not contain the expected predicate", () => {68 const thing = mockThingFrom("https://example.com/thing");69 const { pass, message } = toHaveURL(thing, foaf.homepage);70 expect(pass).toBe(false);71 expect(message()).toEqual(72 `Expected thing to have a predicate of ${foaf.homepage}`73 );74 });75 it("fails when the given thing does not contain the expected predicate with the expected value", () => {76 const actualValue = "https://example.com";77 const expectedValue = "unexpected";78 const thing = setUrl(79 mockThingFrom("https://example.com/thing"),80 foaf.homepage,81 actualValue82 );83 const { pass, message } = toHaveURL(thing, foaf.homepage, expectedValue);84 expect(pass).toBe(false);85 expect(message()).toEqual(86 `Expected thing to have an ${foaf.homepage} predicate with a value of ${expectedValue}, received ${actualValue}`87 );88 });89 it("fails when the given thing does not contain the expected predicate or the expected value", () => {90 const expectedValue = "unexpected";91 const thing = setUrl(92 mockThingFrom("https://example.com/thing"),93 foaf.page,94 "https://example.com"95 );96 const { pass, message } = toHaveURL(thing, foaf.homepage, expectedValue);97 expect(pass).toBe(false);98 expect(message()).toEqual(99 `Expected thing to have an ${foaf.homepage} predicate with a value of ${expectedValue}, received null`100 );101 });...
homepage.stockbit.page.js
Source:homepage.stockbit.page.js
...54 }55 this.validateMenu = async (section) => {56 switch (section) {57 case 'Investing':58 await expect(page).toHaveURL(/.*investasi/);59 break;60 case 'Pro Tools':61 await expect(page).toHaveURL(/.*pro-tools/);62 break;63 case 'Academy':64 await expect(page).toHaveURL(/.*stockbit/);65 break;66 case 'About Us':67 await expect(page).toHaveURL(/.*about/);68 break;69 case 'Blog':70 await expect(page).toHaveURL(/.*stockbit/);71 break;72 case 'Help':73 await expect(page).toHaveURL(/.*stockbit/);74 break;75 case 'Log In':76 await expect(page).toHaveURL(/.*stockbit/);77 break;78 case 'Sign Up':79 await expect(page).toHaveURL(/.*stockbit/);80 break;81 throw new Error('section not exist');82 }83 }84 this.scrollAll = async () => {85 const getText = await page.locator(btnInvest);86 await expect.soft(getText).toHaveText('Mulai Berinvestasi');87 const ios = await page.locator(itunes);88 await expect(ios).toBeVisible();89 const andro = await page.locator(android);90 await expect(andro).toBeVisible();91 }92 this.validateScrollAll = async () => {93 const end = await page.locator(akhir);...
tests.spec.js
Source:tests.spec.js
...18 page.click('button:has-text("Log in")')19 ]);20 // Click text=Welcome SanchTestUser21 await page.click('text=Welcome SanchTestUser');22 await expect(page).toHaveURL('https://www.demoblaze.com/index.html#');23 // Click text=Nexus 624 await page.click('text=Nexus 6');25 await expect(page).toHaveURL('https://www.demoblaze.com/prod.html?idp_=3');26 // Click text=Add to cart27 page.once('dialog', dialog => {28 console.log(`Dialog message: ${dialog.message()}`);29 dialog.dismiss().catch(() => {});30 });31 await page.click('text=Add to cart');32 await expect(page).toHaveURL('https://www.demoblaze.com/prod.html?idp_=3#');33 // Click text=Cart34 await page.click('text=Cart');35 await expect(page).toHaveURL('https://www.demoblaze.com/cart.html');36 // Click text=Delete37 await Promise.all([38 page.waitForNavigation(/*{ url: 'https://www.demoblaze.com/cart.html#' }*/),39 page.click('text=Delete')40 ]);...
dou.play.spec.js
Source:dou.play.spec.js
...11test('check redirect to search page', async ({ page }) => {12 const mainpage = new MainPage(page);13 await mainpage.linkJobPage.click();14 logger.info('clicked the link for job page')15 await expect(page).toHaveURL('https://jobs.dou.ua/');16 await mainpage.clearAndFillDataInSearchInput(Data.text_js);17 await page.locator('input.btn-search').click();18 logger.warn('Redirect to another page');19 logger.error('THe link visible');20 await expect(page).toHaveURL('https://jobs.dou.ua/vacancies/?search=JS');21 await page.locator('text=вÑддалена ÑобоÑа').first().click();22 await expect(page).toHaveURL('https://jobs.dou.ua/vacancies/?remote&from=maybe');23});24test('check search page', async ({ page }) => {25 const mainpage = new MainPage(page);26 await mainpage.linkJobPage.click();27 await mainpage.clearAndFillDataInSearchInput('Javascript');28 await page.locator('div.b-inner-page-header h1:has-text("Javascript")').isVisible();29 await mainpage.checkRegionFilter();...
hello-playwright.js
Source:hello-playwright.js
...4 // Go to https://en.wikipedia.org/wiki/Main_Page5 await page.goto('https://en.wikipedia.org/wiki/Main_Page');6 // Click div[role="main"] >> text=Pali-Aike volcanic field7 await page.locator('div[role="main"] >> text=Pali-Aike volcanic field').click();8 await expect(page).toHaveURL('https://en.wikipedia.org/wiki/Pali-Aike_volcanic_field');9 // Click text=Jurassic-age10 await page.locator('text=Jurassic-age').click();11 await expect(page).toHaveURL('https://en.wikipedia.org/wiki/Jurassic');12 // Click text=Central Atlantic Magmatic Province >> nth=013 await page.locator('text=Central Atlantic Magmatic Province').first().click();14 await expect(page).toHaveURL('https://en.wikipedia.org/wiki/Central_Atlantic_magmatic_province');15 // Click #mw-content-text a:has-text("Jurassic") >> nth=116 await page.locator('#mw-content-text a:has-text("Jurassic")').nth(1).click();17 await expect(page).toHaveURL('https://en.wikipedia.org/wiki/Jurassic');...
App.spec.js
Source:App.spec.js
...3 // Go to https://netology.ru/free/management#/4 await page.goto("https://netology.ru/free/management#/");5 // Click a6 await page.click("a");7 await expect(page).toHaveURL("https://netology.ru/");8 // Click text=УÑиÑÑÑÑ Ð±ÐµÑплаÑно9 await page.click("text=УÑиÑÑÑÑ Ð±ÐµÑплаÑно");10 await expect(page).toHaveURL("https://netology.ru/free");11 page.click("text=ÐÐ¸Ð·Ð½ÐµÑ Ð¸ ÑпÑавление");12 // Click text=Ðак пеÑенеÑÑи ÑÐ²Ð¾Ñ Ð´ÐµÐ»Ð¾ в онлайн13 await page.click("text=Ðак пеÑенеÑÑи ÑÐ²Ð¾Ñ Ð´ÐµÐ»Ð¾ в онлайн");14 await expect(page).toHaveURL(15 "https://netology.ru/programs/kak-perenesti-svoyo-delo-v-onlajn-bp"16 );...
Homework2.play.spec.js
Source:Homework2.play.spec.js
...9 const pageobject = new pageObject(page);10 // await page.goto('https://dou.ua/');11// await page.click('text=СÑÑÑÑка');12await pageobject.linkLenta.click();13 await expect(page).toHaveURL('https://dou.ua/lenta/');14 await page.click('text=DOU ÐодкаÑÑ');15 await expect(page).toHaveURL('https://dou.ua/lenta/tags/dou%20podcast/?from=special');16 await page.click('text=ÐÑÑ Ñеми');17 await expect(page).toHaveURL('https://dou.ua/lenta/tags/');18 await page.click('text=Business Analysis');19 await pageObject.OpenBusinessAnalysisPage();20 // await expect(page).toHaveURL('https://dou.ua/lenta/tags/Business%20Analysis/');...
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('test', async ({ page }) => {3});4FAIL test.js (1s)5 expect(received).toHaveURL(expected)6 > 6 | });7 at Object.<anonymous> (test.js:6:3)
Using AI Code Generation
1const { chromium } = require('playwright');2const { expect } = require('@playwright/test');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await browser.close();8})();
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('test', async ({ page }) => {3});4const { test, expect } = require('@playwright/test');5test('test', async ({ page }) => {6 expect(page).toHaveURL(/dev/);7});8const { test, expect } = require('@playwright/test');9test('test', async ({ page }) => {10});11const { test, expect } = require('@playwright/test');12test('test', async ({ page }) => {13 await page.click('text=Docs');14});15const { test, expect } = require('@playwright/test');16test('test', async ({ page }) => {17 await page.click('text=Docs');18});19const { test, expect } = require('@playwright/test');20test('test', async ({ page }) => {21 await page.click('text=Docs');22 expect(page).toHaveURL(/docs\/intro/);23});24const { test, expect } = require('@playwright/test');25test('test', async ({ page }) => {26 await page.click('text=Docs');27 expect(page).toHaveURL(/docs\/intro/, { waitUntil: 'load' });28});29const { test
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('should load correct page', async ({ page }) => {3});4module.exports = {5};6const { test, expect } = require('@playwright/test');7test('should load correct page', async ({ page }) => {8});9module.exports = {10};11const { test, expect } = require('@playwright/test');12test('should load correct page', async ({ page }) => {13});14module.exports = {15};16const { test, expect } = require('@playwright/test');17test('should load correct page', async ({ page }) => {18});19module.exports = {20};21const { test, expect } = require('@playwright/test');22test('should load correct page', async ({ page }) => {23});
Using AI Code Generation
1const playwright = require('playwright');2const { toHaveURL } = require('@playwright/test');3expect.extend({ toHaveURL });4const { test, expect } = require('@playwright/test');5test('should navigate to the correct page', async ({ page }) => {6});7const { test, expect } = require('@playwright/test');8test('should navigate to the correct page', async ({ page }) => {9});10const { test, expect } = require('@playwright/test');11test('should navigate to the correct page', async ({ page }) => {12});13const { test, expect } = require('@playwright/test');14test('should navigate to the correct page', async ({ page }) => {15});16const { test, expect } = require('@playwright/test');17test('should navigate to the correct page', async ({ page }) => {18});19const { test, expect } = require('@playwright/test');20test('should navigate to the correct page', async ({ page }) => {21});22const { test, expect } = require('@playwright/test');23test('should navigate to the correct page', async ({ page }) => {
Using AI Code Generation
1await page.waitForURL(/playwright.dev/);2expect(page).toHaveURL(/playwright.dev/);3await page.waitForURL({url: /playwright.dev/});4await page.waitForURL({url: /playwright.dev/, waitUntil: 'networkidle'});5await page.waitForURL({url: /playwright.dev/, waitUntil: 'networkidle', timeout: 10000});6await page.waitForURL({url: /playwright.dev/, waitUntil: 'networkidle', timeout: 10000, state: 'attached'});7await page.waitForURL({url: /playwright.dev/, waitUntil: 'networkidle', timeout: 10000, state: 'attached', strict: true});
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!