Best JavaScript code snippet using playwright-internal
Element.traversal.js
Source:Element.traversal.js
...249 });250 251 describe("findParent", function() {252 it("should return document.body", function() {253 expect(el.findParent('body')).toEqual(document.body);254 });255 256 it("should return a dom", function() {257 expect(child1.findParent('.wrapper')).toEqual(Ext.getDom(el));258 });259 260 it("should return an el", function() {261 expect(child1.findParent('.wrapper', null, true)).toEqual(el);262 });263 it("should include itself if it matches", function() {264 expect(child4_1_1.findParent('#child4_1_1', null, true)).toBe(child4_1_1);265 });266 it("should default the maxDepth to 50 or the document element", function() {267 var root = Ext.getBody().createChild({268 cls: 'findParentRoot'269 }),270 current = root,271 els = [root],272 i;273 for (i = 0; i < 49; ++i) {274 current = current.createChild();275 els.push(current);276 }277 expect(current.findParent('.findParentRoot', undefined, true)).toBe(root);278 current = current.createChild();279 els.push(current);280 expect(current.findParent('.findParentRoot', undefined, true)).toBeNull();281 expect(els[10].findParent('.doesntExist')).toBeNull();282 Ext.destroy(els);283 });284 285 describe("with maxDepth", function() {286 describe("as a number", function() {287 it("should include an element within the limit", function() {288 expect(child4_1_1.findParent('#child4', 3, true)).toBe(child4);289 });290 it("should exclude an element at the limit", function() {291 expect(child4_1_1.findParent('#child4', 2, true)).toBeNull();292 });293 it("should exclude an element above the limit", function() {294 expect(child4_1_1.findParent('#child4', 1, true)).toBeNull();295 });296 });297 describe("as an element", function() {298 it("should accept a string id", function() {299 expect(child4_1_1.findParent('.wrapper', 'child4_1')).toBeNull();300 });301 it("should accept a dom element", function() {302 expect(child4_1_1.findParent('.wrapper', child4_1.dom)).toBeNull();303 });304 it("should accept an Ext.dom.Element", function() {305 expect(child4_1_1.findParent('.wrapper', child4_1)).toBeNull();306 });307 it("should include an element within the limit", function() {308 expect(child4_1_1.findParent('.findIt', child4, true)).toBe(child4_1);309 });310 it("should exclude elements at the limit", function() {311 expect(child4_1_1.findParent('#child4', child4, true)).toBeNull();312 });313 it("should exclude an element above the limit", function() {314 expect(child4_1_1.findParent('.wrapper', child4, true)).toBeNull();315 });316 });317 });318 });319 320 describe("contains", function(){321 it('should return false for siblings', function(){322 expect(Ext.fly(child1).contains(child4_1_1)).toBe(false);323 expect(Ext.fly(child2).contains(child4_1_1)).toBe(false);324 });325 it('should return true for parents', function(){326 expect(Ext.fly(child4_1).contains(child4_1_1)).toBe(true);327 });328 it('should return true for grandparents', function(){...
index-test.js
Source:index-test.js
1'use strict';2const assert = require('chai').assert;3const findParent = require('../../');4describe('find-parent/index', () => {5 let fixtureDiv;6 let element;7 const optsWithThrowOnMiss = {8 throwOnMiss: true9 };10 const optsWithOutThrowOnMiss = {11 throwOnMiss: false12 };13 function assertHandlesOptions(func) {14 [0, [], ''].forEach(invalidOpts => {15 assert.throws(() => {16 func.call(func, invalidOpts);17 }, 'to be an object');18 });19 }20 before(() => {21 fixtureDiv = document.createElement('div');22 fixtureDiv.className = 'fixture-div';23 document.body.appendChild(fixtureDiv);24 });25 beforeEach(() => {26 const source = '\27 <div class="ancestor">\28 <span id="test" class="parent">\29 <a href="http://google.com" class="itself">link text</a>\30 </span>\31 </div>';32 fixtureDiv.innerHTML = source;33 });34 describe('#byMatcher', () => {35 describe('with an element outside of the document', () => {36 let ancestor;37 let parent;38 beforeEach(() => {39 ancestor = document.createElement('div');40 parent = document.createElement('span');41 element = document.createElement('a');42 parent.appendChild(element);43 ancestor.appendChild(parent);44 });45 it('should throw if opts is defined and not an object', () => {46 assertHandlesOptions(findParent.byMatcher.bind(findParent, element, () => {}));47 });48 it('should return undefined when no parent matches', () => {49 const result = findParent.byMatcher(element, () => false);50 assert.isUndefined(result);51 });52 it('should return undefined when no parent matches and throwOnMiss is false', () => {53 const result = findParent.byMatcher(element, () => false, optsWithOutThrowOnMiss);54 assert.isUndefined(result);55 });56 it('should throw when no parent matches and throwOnMiss is true', () => {57 assert.throws(() => {58 findParent.byMatcher(element, () => false, optsWithThrowOnMiss);59 }, 'Expected to find parent node, but none was found.');60 });61 it('should return itself when it matches', () => {62 const result = findParent.byMatcher(element, () => true);63 assert.equal(result, element);64 });65 it('should find direct parent', () => {66 const result = findParent.byMatcher(element, node => node.tagName === parent.tagName);67 assert.equal(result, parent);68 });69 it('should find ancestor', () => {70 const result = findParent.byMatcher(element, node => node.tagName === ancestor.tagName);71 assert.equal(result, ancestor);72 });73 });74 describe('with an element in the document', () => {75 beforeEach(() => {76 element = document.getElementsByTagName('a')[0];77 });78 it('should never pass matcher the document object', () => {79 const result = findParent.byMatcher(element, () => {80 assert.notEqual(element, document);81 return false;82 });83 assert.isUndefined(result);84 });85 it('should return undefined when no parent matches', () => {86 const result = findParent.byMatcher(element, () => false);87 assert.isUndefined(result);88 });89 it('should return undefined when no parent matches and throwOnMiss is false', () => {90 const result = findParent.byMatcher(element, () => false, optsWithOutThrowOnMiss);91 assert.isUndefined(result);92 });93 it('should throw when no parent matches and throwOnMiss is true', () => {94 assert.throws(() => {95 findParent.byMatcher(element, () => false, optsWithThrowOnMiss);96 }, 'Expected to find parent node, but none was found.');97 });98 it('should return itself when it matches', () => {99 const result = findParent.byMatcher(element, () => true);100 assert.equal(result, element);101 });102 it('should find direct parent', () => {103 const result = findParent.byMatcher(element, node => node.id === 'test');104 assert.equal(result.id, 'test');105 });106 it('should find ancestor', () => {107 const result = findParent.byMatcher(element, node => node.className === 'ancestor');108 assert.equal(result.className, 'ancestor');109 });110 });111 });112 describe('#byClassName', () => {113 beforeEach(() => {114 element = document.getElementsByTagName('a')[0];115 });116 it('should throw if opts is defined and not an object', () => {117 assertHandlesOptions(findParent.byClassName.bind(findParent, element, 'nonExistant'));118 });119 it('should return undefined if there are no ancestors with className', () => {120 const result = findParent.byClassName(element, 'nonexistant');121 assert.isUndefined(result);122 });123 it('should return undefined if there are no ancestors with className and throwOnMiss is false', () => {124 const result = findParent.byClassName(element, 'nonexistant', optsWithOutThrowOnMiss);125 assert.isUndefined(result);126 });127 it('should throw if there are no ancestors with className and throwOnMiss is true', () => {128 assert.throws(() => {129 findParent.byClassName(element, 'nonexistant', optsWithThrowOnMiss);130 }, 'Expected to find parent node, but none was found.');131 });132 it('should return itself when it has className', () => {133 const result = findParent.byClassName(element, 'itself');134 assert.equal(result.className, 'itself');135 });136 it('should return parent with className', () => {137 const result = findParent.byClassName(element, 'parent');138 assert.equal(result.className, 'parent');139 });140 it('should return ancestor with className', () => {141 const result = findParent.byClassName(element, 'ancestor');142 assert.equal(result.className, 'ancestor');143 });144 });145 describe('#withDataAttribute', () => {146 beforeEach(() => {147 const source = '\148 <div class="ancestor" data-ancestor-node="1">\149 <span id="test" class="parent" data-parent-node="2">\150 <a href="http://google.com" class="itself" data-itself="3">link text</a>\151 </span>\152 </div>';153 fixtureDiv.innerHTML = source;154 element = document.getElementsByTagName('a')[0];155 });156 it('should throw if opts is defined and not an object', () => {157 assertHandlesOptions(findParent.withDataAttribute.bind(findParent, element, 'nonExistant'));158 });159 it('should return undefined if there are no ancestors with className', () => {160 const result = findParent.withDataAttribute(element, 'nonExistant');161 assert.isUndefined(result);162 });163 it('should return undefined if there are no ancestors with className and throwOnMiss is false', () => {164 const result = findParent.withDataAttribute(element, 'nonExistant', optsWithOutThrowOnMiss);165 assert.isUndefined(result);166 });167 it('should throw if there are no ancestors with className and throwOnMiss is true', () => {168 assert.throws(() => {169 findParent.withDataAttribute(element, 'nonExistant', optsWithThrowOnMiss);170 }, 'Expected to find parent node, but none was found.');171 });172 it('should return itself when it has the data attribute', () => {173 const result = findParent.withDataAttribute(element, 'itself');174 assert.equal(result.className, 'itself');175 });176 it('should return parent with data attribute', () => {177 const result = findParent.withDataAttribute(element, 'parentNode');178 assert.equal(result.className, 'parent');179 });180 it('should return ancestor with data attribute', () => {181 const result = findParent.withDataAttribute(element, 'ancestorNode');182 assert.equal(result.className, 'ancestor');183 });184 });...
babel-plugin-jest-native-globals.js
Source:babel-plugin-jest-native-globals.js
...32 ReferencedIdentifier(path, state) {33 if (path.node.name === 'Promise' && !state.jestInjectedPromise) {34 state.jestInjectedPromise = true;35 path36 .findParent(p => p.isProgram())37 .unshiftContainer('body', promiseDeclaration());38 path39 .findParent(p => p.isProgram())40 .unshiftContainer('body', symbolDeclaration());41 }42 if (path.node.name === 'Symbol' && !state.jestInjectedSymbol) {43 state.jestInjectedSymbol = true;44 path45 .findParent(p => p.isProgram())46 .unshiftContainer('body', symbolDeclaration());47 }48 if (49 path.node.name === 'Date' &&50 path.parent.property &&51 path.parent.property.name === 'now'52 ) {53 if (!state.jestInjectedNow) {54 state.jestInjectedNow = true;55 path56 .findParent(p => p.isProgram())57 .unshiftContainer('body', nowDeclaration());58 path59 .findParent(p => p.isProgram())60 .unshiftContainer('body', symbolDeclaration());61 }62 path.parentPath.replaceWithSourceString('jestNow');63 }64 if (65 path.node.name === 'fs' &&66 path.parent.property &&67 ['readFileSync', 'writeFileSync', 'existsSync'].includes(68 path.parent.property.name69 )70 ) {71 if (72 !state.jestInjectedRead &&73 path.parent.property.name === 'readFileSync'74 ) {75 state.jestInjectedRead = true;76 path77 .findParent(p => p.isProgram())78 .unshiftContainer('body', fsReadFileDeclaration());79 path80 .findParent(p => p.isProgram())81 .unshiftContainer('body', symbolDeclaration());82 path.parentPath.replaceWithSourceString('jestReadFile');83 }84 if (85 !state.jestInjectedWrite &&86 path.parent.property.name === 'writeFileSync'87 ) {88 state.jestInjectedWrite = true;89 path90 .findParent(p => p.isProgram())91 .unshiftContainer('body', fsWriteFileDeclaration());92 path93 .findParent(p => p.isProgram())94 .unshiftContainer('body', symbolDeclaration());95 path.parentPath.replaceWithSourceString('jestWriteFile');96 }97 if (98 !state.jestInjectedExists &&99 path.parent.property.name === 'existsSync'100 ) {101 state.jestInjectedExists = true;102 path103 .findParent(p => p.isProgram())104 .unshiftContainer('body', fsExistsFileDeclaration());105 path106 .findParent(p => p.isProgram())107 .unshiftContainer('body', symbolDeclaration());108 path.parentPath.replaceWithSourceString('jestExistsFile');109 }110 }111 },112 },113 };...
jira-operations-test.js
Source:jira-operations-test.js
...25 .should.eventually.be.rejectedWith(/Cannot find Epic Link Field/)26 .notify(done);27 });28 it('Find Parent from Sub-task', async function() {29 const parent = await findParent(dummyJira.issues.SubTask1, dummyJira);30 parent.fields.issuetype.name.should.eql('Story');31 });32 it('Find Parent from Feature Defect', async function() {33 const parent = await findParent(dummyJira.issues.FeatureDefect1, dummyJira);34 parent.fields.issuetype.name.should.eql('Story');35 });36 it('Find Parent from Story by EpicLink', async function() {37 dummyJira.listFields = async function() {38 return dummyJira.fields.epicLink;39 };40 dummyJira.host = 'jira.host3.com';41 const parent = await findParent(dummyJira.issues.Story3, dummyJira);42 parent.fields.issuetype.name.should.eql('Epic');43 });44 it('Find Parent from Story by IssueLink', async function() {45 const parent = await findParent(dummyJira.issues.Story4, dummyJira);46 parent.fields.issuetype.name.should.eql('Initiative');47 });48 it('Find Parent from Story with no Epic or Initiative', (done) => {49 findParent(dummyJira.issues.Story9, dummyJira)50 .should.eventually.be.rejectedWith(51 /Story9 does not have an associated parent Initiative or Epic./)52 .notify(done);53 });54 it('Find Parent from Epic', async function() {55 const parent = await findParent(dummyJira.issues.Epic3, dummyJira);56 parent.fields.issuetype.name.should.eql('Initiative');57 });58 it('No Parent Found from Epic', done => {59 findParent(dummyJira.issues.Epic1, dummyJira)60 .should.eventually.be.rejectedWith(61 /initiative from Epic Epic1 in issue links. Initiative should be linked by 'relates to'/)62 .notify(done);63 });64 it('No Parent Found from Initiative', done => {65 findParent(dummyJira.issues.I2, dummyJira)66 .should.eventually.be.rejectedWith(/Initiative should not have a parent/)67 .notify(done);68 });69 });70 describe('Relates Check', () => {71 it('Good Link', () => {72 const result = findIssueLinkParentKey(dummyJira.issues.Story2);73 result.should.equal('I2');74 });75 it('Bad Link', () => {76 const result = findIssueLinkParentKey(dummyJira.issues.Story5);77 expect(result).to.be.null;78 });79 });80 describe('Memoization Tests', () => {81 let spy;82 it('findParent with Same Key is Called Only Once', async function() {83 spy = sinon.spy(dummyJira, 'findIssue');84 const [first, second] = await Promise.all([85 findParent(dummyJira.issues.SubTask2, dummyJira),86 findParent(dummyJira.issues.SubTask2, dummyJira)87 ]);88 spy.calledOnce.should.be.true;89 first.should.equal(second);90 });91 it('getEpicLinkField with Same JIRA Host is Called Only Once', async function() {92 spy = sinon.spy(dummyJira, 'listFields');93 dummyJira.host = 'jira.host4.com';94 const [first, second] = await Promise.all([95 getEpicLinkField(dummyJira),96 getEpicLinkField(dummyJira)97 ]);98 spy.calledOnce.should.be.true;99 first.should.equal(second);100 });...
findParent.js
Source:findParent.js
1import { initModule } from '../../helpers/test-config';2import { test } from 'qunit';3export default function() {4 initModule('methods/findParent.js');5 test('.findParent() finds parent', t => {6 const C4 = Ractive.extend({7 template: 'this space for rent'8 });9 const C3 = Ractive.extend({10 template: '<C4/>',11 components: { C4 }12 });13 const C2 = Ractive.extend({14 template: '<C3/>',15 components: { C3 }16 });17 const C1 = Ractive.extend({18 template: '<C2/>',19 components: { C2 }20 });21 const ractive = new Ractive({22 el: fixture,23 template: '<C1/>',24 components: { C1 }25 });26 const c1 = ractive.findComponent('C1');27 const c2 = ractive.findComponent('C2');28 const c3 = ractive.findComponent('C3');29 const c4 = ractive.findComponent('C4');30 t.equal(c4.findParent('foo'), null);31 t.equal(c4.findParent('C3'), c3);32 t.equal(c4.findParent('C2'), c2);33 t.equal(c4.findParent('C1'), c1);34 t.equal(c3.findParent('C4'), null);35 t.equal(c3.findParent('C3'), null);36 t.equal(c3.findParent('C2'), c2);37 t.equal(c3.findParent('C1'), c1);38 t.equal(c2.findParent('C1'), c1);39 });...
섬 연결하기.js
Source:섬 연결하기.js
...6 parent[i] = i;7 }8 const findParent = (parent, x) => {9 if (parent[x] !== x) {10 parent[x] = findParent(parent, parent[x]);11 }12 return parent[x];13 };14 const unionParent = (parent, a, b) => {15 a = findParent(parent, a);16 b = findParent(parent, b);17 if (a < b) {18 parent[b] = a;19 } else {20 parent[a] = b;21 }22 };23 for (const [start, end, cost] of costs) {24 if (findParent(parent, start) !== findParent(parent, end)) {25 unionParent(parent, start, end);26 answer += cost;27 }28 }29 return answer;...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 const handle = await page.$('text="Get Started"');7 const parent = await handle.evaluateHandle((node) => node.findParent('a'));8 await parent.evaluate((node) => node.click());9 await browser.close();10})();11const { chromium } = require('playwright');12(async () => {13 const browser = await chromium.launch();14 const context = await browser.newContext();15 const page = await context.newPage();16 const handle = await page.$('text="Get Started"');17 const child = await handle.evaluateHandle((node) => node.findChild('a'));18 await child.evaluate((node) => node.click());19 await browser.close();20})();21const { chromium } = require('playwright');22(async () => {23 const browser = await chromium.launch();24 const context = await browser.newContext();25 const page = await context.newPage();26 const handle = await page.$('text="Get Started"');27 const siblings = await handle.evaluateHandle((node) => node.findSiblings());28 await siblings.evaluate((node) => node.click());29 await browser.close();30})();31const { chromium } = require('playwright');32(async () => {33 const browser = await chromium.launch();34 const context = await browser.newContext();35 const page = await context.newPage();36 const handle = await page.$('text="Get Started"');37 const nextSiblings = await handle.evaluateHandle((node) => node.findNextSiblings());38 await nextSiblings.evaluate((node) => node.click());
Using AI Code Generation
1const path = require('path');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const input = await page.$('input');8 const form = await input.evaluateHandle((node) => node.findParent('form'));9 await form.evaluate((node) => node.submit());10 await browser.close();11})();12const path = require('path');13const { chromium } = require('playwright');14(async () => {15 const browser = await chromium.launch();16 const context = await browser.newContext();17 const page = await context.newPage();18 const input = await page.$('input');19 const form = await input.evaluateHandle((node) => node.findParent('form'));20 await form.evaluate((node) => node.submit());21 await browser.close();22})();23const path = require('path');24const { chromium } = require('playwright');25(async () => {26 const browser = await chromium.launch();27 const context = await browser.newContext();28 const page = await context.newPage();29 const input = await page.$('input');30 const form = await input.evaluateHandle((node) => node.findParent('form'));31 await form.evaluate((node) => node.submit());32 await browser.close();33})();34const path = require('path');35const { chromium } = require('playwright');36(async () => {37 const browser = await chromium.launch();38 const context = await browser.newContext();39 const page = await context.newPage();40 const input = await page.$('input');41 const form = await input.evaluateHandle((node) => node.findParent('form'));42 await form.evaluate((node) => node.submit());43 await browser.close();44})();45const path = require('path');46const { chromium } = require
Using AI Code Generation
1const { findParent } = require('playwright/lib/server/frames');2const { Frame } = require('playwright/lib/server/frame');3const { ElementHandle } = require('playwright/lib/server/dom');4const { JSHandle } = require('playwright/lib/server/jsHandle');5const { ElementHandleChannel } = require('playwright/lib/channels');6const { FrameChannel } = require('playwright/lib/channels');7const { JSHandleChannel } = require('playwright/lib/channels');8const { PageChannel } = require('playwright/lib/channels');9const frame = new Frame(new FrameChannel(null, null, null, null, null, null), null, null, null, null, null, null, null, null, null, null, null, null, null, null);10const elementHandle = new ElementHandle(new ElementHandleChannel(null, null, null, null, null, null), null, null, null, null, null, null, null, null, null, null, null);11const jsHandle = new JSHandle(new JSHandleChannel(null, null, null, null, null, null), null, null, null, null, null, null, null, null, null, null, null);12const page = new PageChannel(null, null, null, null, null, null);13const parent = findParent(frame, elementHandle, jsHandle, page);14console.log(parent);15 at findParent (/Users/.../test.js:8:49)16 at Object.<anonymous> (/Users/.../test.js:41:18)17 at Module._compile (internal/modules/cjs/loader.js:1158:30)18 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)19 at Module.load (internal/modules/cjs/loader.js:1002:32)20 at Function.Module._load (internal/modules/cjs/loader.js:901:14)21 at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
Using AI Code Generation
1const { findParent } = require('@playwright/test/lib/server/frames');2const { Frame } = require('@playwright/test/lib/server/chromium/crPage');3const { ElementHandle } = require('@playwright/test/lib/server/dom');4 * @param {!Frame} frame5 * @param {!ElementHandle} element6 * @param {string} selector7async function findParentElement(frame, element, selector) {8 const parent = await findParent(frame, element);9 if (!parent)10 return null;11 const handle = await parent.$(selector);12 if (handle)13 return handle;14 return findParentElement(parent._page.mainFrame(), parent, selector);15}16module.exports = { findParentElement };
Using AI Code Generation
1const { findParent } = require('playwright/lib/server/dom.js');2const elementHandle = await page.$('div');3const parentElement = await findParent(elementHandle);4console.log(parentElement);5ElementHandle {6 _context: BrowserContext {7 _browser: Browser {8 _timeoutSettings: TimeoutSettings { _defaultTimeout: 30000 },9 },10 _options: {11 userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',12 },13 _timeoutSettings: TimeoutSettings { _defaultTimeout: 30000 },14 _permissions: {},15 _extraHTTPHeaders: {},
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false, slowMo: 50 });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.click('text=Today\'s Deals');7 const popup = await page.$('#nav-xshop > a:nth-child(3)');8 const parent = await popup.evaluateHandle((node) => node.parentNode);9 await parent.click();10 await page.screenshot({ path: `example.png` });11 await browser.close();12})();
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!!