Best JavaScript code snippet using playwright-internal
matchers.js
Source:matchers.js
...52 timeout53 });54 }, options);55}56function toBeEditable(locator, options) {57 return _toBeTruthy.toBeTruthy.call(this, 'toBeEditable', locator, 'Locator', async timeout => {58 return await locator.isEditable({59 timeout60 });61 }, options);62}63function toBeEmpty(locator, options) {64 return _toBeTruthy.toBeTruthy.call(this, 'toBeEmpty', locator, 'Locator', async timeout => {65 return await locator.evaluate(element => {66 var _element$textContent;67 if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') return !element.value;68 return !((_element$textContent = element.textContent) !== null && _element$textContent !== void 0 && _element$textContent.trim());69 }, {70 timeout...
expect.js
Source:expect.js
1"use strict";2Object.defineProperty(exports, "__esModule", {3 value: true4});5exports.expect = void 0;6var _expect = _interopRequireDefault(require("expect"));7var _matchers = require("./matchers/matchers");8var _toMatchSnapshot = require("./matchers/toMatchSnapshot");9var _matchers2 = _interopRequireDefault(require("expect/build/matchers"));10var _globals = require("./globals");11var _util = require("./util");12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }13/**14 * Copyright Microsoft Corporation. All rights reserved.15 *16 * Licensed under the Apache License, Version 2.0 (the "License");17 * you may not use this file except in compliance with the License.18 * You may obtain a copy of the License at19 *20 * http://www.apache.org/licenses/LICENSE-2.021 *22 * Unless required by applicable law or agreed to in writing, software23 * distributed under the License is distributed on an "AS IS" BASIS,24 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.25 * See the License for the specific language governing permissions and26 * limitations under the License.27 */28const expect = _expect.default;29exports.expect = expect;30_expect.default.setState({31 expand: false32});33const customMatchers = {34 toBeChecked: _matchers.toBeChecked,35 toBeDisabled: _matchers.toBeDisabled,36 toBeEditable: _matchers.toBeEditable,37 toBeEmpty: _matchers.toBeEmpty,38 toBeEnabled: _matchers.toBeEnabled,39 toBeFocused: _matchers.toBeFocused,40 toBeHidden: _matchers.toBeHidden,41 toBeVisible: _matchers.toBeVisible,42 toContainText: _matchers.toContainText,43 toHaveAttribute: _matchers.toHaveAttribute,44 toHaveClass: _matchers.toHaveClass,45 toHaveCount: _matchers.toHaveCount,46 toHaveCSS: _matchers.toHaveCSS,47 toHaveId: _matchers.toHaveId,48 toHaveJSProperty: _matchers.toHaveJSProperty,49 toHaveText: _matchers.toHaveText,50 toHaveTitle: _matchers.toHaveTitle,51 toHaveURL: _matchers.toHaveURL,52 toHaveValue: _matchers.toHaveValue,53 toMatchSnapshot: _toMatchSnapshot.toMatchSnapshot54};55function wrap(matcherName, matcher) {56 return function (...args) {57 const testInfo = (0, _globals.currentTestInfo)();58 if (!testInfo) return matcher.call(this, ...args);59 const infix = this.isNot ? '.not' : '';60 const completeStep = testInfo._addStep('expect', `expect${infix}.${matcherName}`);61 const stack = new Error().stack;62 const reportStepEnd = result => {63 const success = result.pass !== this.isNot;64 let error;65 if (!success) error = {66 message: result.message(),67 stack68 };69 completeStep === null || completeStep === void 0 ? void 0 : completeStep(error);70 return result;71 };72 const reportStepError = error => {73 completeStep === null || completeStep === void 0 ? void 0 : completeStep((0, _util.serializeError)(error));74 throw error;75 };76 try {77 const result = matcher.call(this, ...args);78 if (result instanceof Promise) return result.then(reportStepEnd).catch(reportStepError);79 return reportStepEnd(result);80 } catch (e) {81 reportStepError(e);82 }83 };84}85const wrappedMatchers = {};86for (const matcherName in _matchers2.default) wrappedMatchers[matcherName] = wrap(matcherName, _matchers2.default[matcherName]);87for (const matcherName in customMatchers) wrappedMatchers[matcherName] = wrap(matcherName, customMatchers[matcherName]);...
matchers.spec.js
Source:matchers.spec.js
...30});31describe('toBeEditable', () => {32 it('should match a non-readonly, enable element', async () => {33 const e = new WebElement();34 expect((await toBeEditable(e)).pass).toBeTruthy();35 });36 it('should not match a readonly element', async () => {37 const e = new WebElement();38 e.readonly = true;39 expect((await toBeEditable(e)).pass).toBeFalsy();40 });41 it('should not match a disabled element', async () => {42 const e = new WebElement();43 e.enabled = false;44 expect((await toBeEditable(e)).pass).toBeFalsy();45 });46});47describe('toHaveSelectedValue', () => {48 it('should match a select element value', async () => {49 const e = new WebElement('select');50 e.value = 'test';51 expect((await toHaveSelectedValue(e, e.value)).pass).toBeTruthy();52 });53 it('should not match a select element with a different value', async () => {54 const e = new WebElement('select');55 e.value = 'test';56 expect((await toHaveSelectedValue(e, 'diff')).pass).toBeFalsy();57 });58 it('should not match a different element', async () => {...
task.spec.js
Source:task.spec.js
...38 await expect(page).toHaveURL('https://www.pecodesoftware.com/qa-portal/registerlogin/registerlogin.php');39});40 //4. Use an assertion library and verify that all the elements are present on the page.41 // await expect(page.locator('text=QA Portal Login').first()).toBeVisible();42 // await expect(page.locator('input[placeholder="Username"]').first()).toBeEditable();43 // await expect(page.locator('input[placeholder="Username"]').toBeEmpty();44 // await expect(page.locator('input[placeholder="Password"]').toBeEditable();45 // await expect(page.locator('input[placeholder="Password"]').toBeEmpty();...
Login.test.js
Source:Login.test.js
...12 await expect(locator).toHaveText(/Sign in/);13 });14 test("Email Text Field Editable", async ({ page }) => {15 const locator = page.locator("#email");16 await expect(locator).toBeEditable();17 });18 test("Password Text Field Editable", async ({ page }) => {19 const locator = page.locator("#password");20 await expect(locator).toBeEditable();21 });22 test("SignIn Button Enabled", async ({ page }) => {23 const locator = page.locator("#signin");24 await expect(locator).toBeEnabled();25 });26 test("Footer Text Validation", async ({ page }) => {27 await expect(page).toHaveURL("http://localhost:3001/Login");28 const locator = page.locator("#footer-link");29 await expect(locator).toHaveText(/Your Website/);30 });31 test("SignIn Button", async ({ page }) => {32 await expect(page).toHaveURL("http://localhost:3001/Login");33 await page.fill("#email", "maan");34 await page.fill("#password", "ahmed123");...
practice-form-page-tests.spec.js
Source:practice-form-page-tests.spec.js
...15 console.log(await practiceFormPage.firstName.isDisabled());16 console.log(await practiceFormPage.firstName.isEnabled());17 await test.expect(practiceFormPage.firstName).toBeEnabled();18 console.log(await practiceFormPage.firstName.isEditable());19 await test.expect(practiceFormPage.firstName).toBeEditable();20 console.log(await practiceFormPage.sportsCheck.isChecked());21 await test.expect(practiceFormPage.sportsCheck).not.toBeChecked();22 console.log(await practiceFormPage.sportsCheck.isVisible());23 await test.expect(practiceFormPage.sportsCheck).toBeVisible();24 console.log(await practiceFormPage.submitBtn.isHidden());25 await test.expect(practiceFormPage.submitBtn).not.toBeHidden();26 console.log(await practiceFormPage.submitBtn.isVisible());27 await test.expect(practiceFormPage.submitBtn).toBeVisible();28 });...
forgot-password-page-tests.spec.js
Source:forgot-password-page-tests.spec.js
...14 await test.expect(page).toHaveURL(/forgot_password/);15 await test.expect(forgotPasswordPage.emailFieldLabel).toBeTruthy();16 await test.expect(forgotPasswordPage.emailField).toBeEmpty();17 await forgotPasswordPage.enterTxtInEmailField(`${data.email}`);18 await test.expect(forgotPasswordPage.emailField).toBeEditable();19 await test20 .expect(await page.screenshot())21 .toMatchSnapshot(["snaphots", "forgot-password-page.png"], {22 threshold: 1,23 });24 });...
iframes-page-tests.spec.js
Source:iframes-page-tests.spec.js
...7 let text = `${data.helloWorld}`;8 await iframesPage.clickFramesPageLink();9 await iframesPage.clickIframesPageLink();10 await page.waitForLoadState("networkidle");11 await test.expect(iframesPage.iframeEditor).toBeEditable();12 await test.expect(iframesPage.iframeEditor).toBeFocused();13 await iframesPage.typeInIframe(text);14 console.log(text);15 await test.expect(iframesPage.iframeEditor).toHaveText(text);16 });...
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('should be editable', async ({ page }) => {3 const element = page.locator('text=Get started');4 await expect(element).toBeEditable();5});6const { test, expect } = require('@playwright/test');7test('should be disabled', async ({ page }) => {8 const element = page.locator('text=Get started');9 await expect(element).toBeDisabled();10});11const { test, expect } = require('@playwright/test');12test('should be enabled', async ({ page }) => {13 const element = page.locator('text=Get started');14 await expect(element).toBeEnabled();15});16const { test, expect } = require('@playwright/test');17test('should be focused', async ({ page }) => {18 const element = page.locator('text=Get started');19 await expect(element).toBeFocused();20});21const { test, expect } = require('@playwright/test');22test('should be hidden', async ({ page }) => {23 const element = page.locator('text=Get started');24 await expect(element).toBeHidden();25});26const { test, expect } = require('@playwright/test');27test('should be visible', async ({ page }) => {28 const element = page.locator('text=Get started');29 await expect(element).toBeVisible();
Using AI Code Generation
1const {chromium} = require('playwright');2(async () => {3 const browser = await chromium.launch({headless: false});4 const context = await browser.newContext();5 const page = await context.newPage();6 const searchBox = await page.$('input[title="Search"]');7 await searchBox.click();8 await searchBox.fill('Playwright');9 await searchBox.press('Enter');10 await page.waitForLoadState('networkidle');11 const searchResults = await page.$('div#search');12 await searchResults.waitForSelector('h3');13 const results = await searchResults.$$('h3');14 console.log(results.length);15 await browser.close();16})();
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!!