Best JavaScript code snippet using playwright-internal
event-selector-test.js
Source:event-selector-test.js
1var tape = require('tape'),2 vega = require('../');3tape('Parser parses event parseSelector strings', t => {4 let events;5 events = vega.parseSelector('rect:mousedown');6 t.equal(events.length, 1);7 t.deepEqual(events[0], {8 source: 'view',9 type: 'mousedown',10 marktype: 'rect'11 });12 events = vega.parseSelector('rect:mousedown, rect:touchstart');13 t.equal(events.length, 2);14 t.deepEqual(events[0], {15 source: 'view',16 type: 'mousedown',17 marktype: 'rect'18 });19 t.deepEqual(events[1], {20 source: 'view',21 type: 'touchstart',22 marktype: 'rect'23 });24 events = vega.parseSelector('rect:mousedown!');25 t.equal(events.length, 1);26 t.deepEqual(events[0], {27 source: 'view',28 type: 'mousedown',29 marktype: 'rect',30 consume: true31 });32 events = vega.parseSelector('@foo:mouseup');33 t.equal(events.length, 1);34 t.deepEqual(events[0], {35 source: 'view',36 type: 'mouseup',37 markname: 'foo'38 });39 events = vega.parseSelector('rect:mousedown{1000}');40 t.equal(events.length, 1);41 t.deepEqual(events[0], {42 source: 'view',43 type: 'mousedown',44 marktype: 'rect',45 throttle: 100046 });47 events = vega.parseSelector('rect:mousedown{100,200}');48 t.equal(events.length, 1);49 t.deepEqual(events[0], {50 source: 'view',51 type: 'mousedown',52 marktype: 'rect',53 throttle: 100,54 debounce: 20055 });56 events = vega.parseSelector('rect:mousedown{0,200}');57 t.equal(events.length, 1);58 t.deepEqual(events[0], {59 source: 'view',60 type: 'mousedown',61 marktype: 'rect',62 debounce: 20063 });64 events = vega.parseSelector('rect:mousedown{,200}');65 t.equal(events.length, 1);66 t.deepEqual(events[0], {67 source: 'view',68 type: 'mousedown',69 marktype: 'rect',70 debounce: 20071 });72 events = vega.parseSelector('rect:mousedown{200,0}');73 t.equal(events.length, 1);74 t.deepEqual(events[0], {75 source: 'view',76 type: 'mousedown',77 marktype: 'rect',78 throttle: 20079 });80 events = vega.parseSelector('rect:mousedown{200,}');81 t.equal(events.length, 1);82 t.deepEqual(events[0], {83 source: 'view',84 type: 'mousedown',85 marktype: 'rect',86 throttle: 20087 });88 events = vega.parseSelector('mousedown[event.x>10][event.metaKey]');89 t.equal(events.length, 1);90 t.deepEqual(events[0], {91 source: 'view',92 type: 'mousedown',93 filter: ['event.x>10', 'event.metaKey']94 });95 events = vega.parseSelector('wheel![event.shiftKey]');96 t.equal(events.length, 1);97 t.deepEqual(events[0], {98 source: 'view',99 type: 'wheel',100 consume: true,101 filter: ['event.shiftKey']102 });103 events = vega.parseSelector('wheel![event.shiftKey]{200}');104 t.equal(events.length, 1);105 t.deepEqual(events[0], {106 source: 'view',107 type: 'wheel',108 consume: true,109 filter: ['event.shiftKey'],110 throttle: 200111 });112 events = vega.parseSelector('path:wheel![event.shiftKey]{200}');113 t.equal(events.length, 1);114 t.deepEqual(events[0], {115 source: 'view',116 type: 'wheel',117 marktype: 'path',118 consume: true,119 filter: ['event.shiftKey'],120 throttle: 200121 });122 events = vega.parseSelector('[mousedown, mouseup] > window:mousemove');123 t.equal(events.length, 1);124 t.deepEqual(events[0], {125 source: 'window',126 type: 'mousemove',127 between: [128 {source: 'view', type: 'mousedown'},129 {source: 'view', type: 'mouseup'}130 ]131 });132 events = vega.parseSelector('[touchstart, touchend] > [mousedown, mouseup] > window:mousemove');133 t.equal(events.length, 1);134 t.deepEqual(events[0], {135 between: [136 {source: 'view', type: 'touchstart'},137 {source: 'view', type: 'touchend'}138 ],139 stream: {140 source: 'window',141 type: 'mousemove',142 between: [143 {source: 'view', type: 'mousedown'},144 {source: 'view', type: 'mouseup'}145 ]146 }147 });148 events = vega.parseSelector('[mousedown[!event.item], window:mouseup] > window:mousemove');149 t.equal(events.length, 1);150 t.deepEqual(events[0], {151 source: 'window',152 type: 'mousemove',153 between: [154 {source: 'view', type: 'mousedown', filter: ['!event.item']},155 {source: 'window', type: 'mouseup'}156 ]157 });158 t.end();159});160tape('Parser allows configurable source', t => {161 const events = vega.parseSelector('rect:mousedown', 'scope');162 t.equal(events.length, 1);163 t.deepEqual(events[0], {164 source: 'scope',165 type: 'mousedown',166 marktype: 'rect'167 });168 t.end();169});170tape('Parser rejects invalid event parseSelector strings', t => {171 t.throws(() => { vega.parseSelector(''); });172 t.throws(() => { vega.parseSelector('foo{}'); });173 t.throws(() => { vega.parseSelector('foo{a}'); });174 t.throws(() => { vega.parseSelector('foo{1,2,3}'); });175 t.throws(() => { vega.parseSelector('{foo'); });176 t.throws(() => { vega.parseSelector('}foo'); });177 t.throws(() => { vega.parseSelector('foo{'); });178 t.throws(() => { vega.parseSelector('foo}'); });179 t.throws(() => { vega.parseSelector('foo{1'); });180 t.throws(() => { vega.parseSelector('foo}1'); });181 t.throws(() => { vega.parseSelector('foo{1}a'); });182 t.throws(() => { vega.parseSelector('{}'); });183 t.throws(() => { vega.parseSelector('{1}'); });184 t.throws(() => { vega.parseSelector('{1}a'); });185 t.throws(() => { vega.parseSelector('[foo'); });186 t.throws(() => { vega.parseSelector(']foo'); });187 t.throws(() => { vega.parseSelector('foo['); });188 t.throws(() => { vega.parseSelector('foo]'); });189 t.throws(() => { vega.parseSelector('foo[1'); });190 t.throws(() => { vega.parseSelector('foo]1'); });191 t.throws(() => { vega.parseSelector('foo[1]a'); });192 t.throws(() => { vega.parseSelector('[]'); });193 t.throws(() => { vega.parseSelector('[a]'); });194 t.throws(() => { vega.parseSelector('[a,b]'); });195 t.throws(() => { vega.parseSelector('[a,b] >'); });196 t.end();...
select.js
Source:select.js
...5 mocha.setup('bdd');6 describe('parse selectors', function() {7 describe('simple', function() {8 it('should parse "name"', function() {9 assert.deepEqual(parseSelector('name'), [{10 name: 'name'11 }]);12 });13 it('should parse "owner.name"', function() {14 assert.deepEqual(parseSelector('owner.name'), [{15 name: 'owner',16 properties: [{17 name: 'name'18 }]19 }]);20 });21 });22 describe('groups', function() {23 it('should parse "{ name, image }"', function() {24 assert.deepEqual(parseSelector('{ name, image }'), [{25 name: 'name'26 }, {27 name: 'image'28 }]);29 });30 it('should parse "name, image"', function() {31 assert.deepEqual(parseSelector('name, image'), [{32 name: 'name'33 }, {34 name: 'image'35 }]);36 });37 it('should parse "owner.{ name, image }"', function() {38 assert.deepEqual(parseSelector('owner.{ name, image }'), [{39 name: 'owner',40 properties: [{41 name: 'name'42 }, {43 name: 'image'44 }]45 }]);46 });47 it('should parse ["name", "image"]', function() {48 assert.deepEqual(parseSelector(['name', 'image']), [{49 name: 'name'50 }, {51 name: 'image'52 }]);53 });54 it('should parse "{ l1p1.{ l2p1.{ l3p1, l3p2 }, l2p2 }, l1p2.{ l2p3 }}"', function() {55 assert.deepEqual(parseSelector('{ l1p1.{ l2p1.{ l3p1, l3p2 }, l2p2 }, l1p2.{ l2p3 }}'), [{56 name: 'l1p1',57 properties: [{58 name: 'l2p1',59 properties: [{60 name: 'l3p1'61 }, {62 name: 'l3p2'63 }]64 }, {65 name: 'l2p2'66 }]67 }, {68 name: 'l1p2',69 properties: [{70 name: 'l2p3'71 }]72 }]);73 });74 });75 describe('collections', function() {76 it('should parse "tracks[0]"', function() {77 assert.deepEqual(parseSelector('tracks[0]'), [{78 name: 'tracks',79 slice: true,80 start: 0,81 end: 182 }]);83 });84 it('should parse "tracks[]"', function() {85 assert.deepEqual(parseSelector('tracks[]'), [{86 name: 'tracks',87 slice: true,88 start: 0,89 end: Infinity90 }]);91 });92 it('should parse "tracks[0..10]"', function() {93 assert.deepEqual(parseSelector('tracks[0..10]'), [{94 name: 'tracks',95 slice: true,96 start: 0,97 end: 1098 }]);99 });100 it('should parse "tracks[0...10]"', function() {101 assert.deepEqual(parseSelector('tracks[0...10]'), [{102 name: 'tracks',103 slice: true,104 start: 0,105 end: 11106 }]);107 });108 it('should parse "tracks[10..]"', function() {109 assert.deepEqual(parseSelector('tracks[10..]'), [{110 name: 'tracks',111 slice: true,112 start: 10,113 end: Infinity114 }]);115 });116 });117 describe('real world', function() {118 it('should parse "playlists[0..5].{name, image, uri, subscribers.length, owner.{name, username, uri}}"', function() {119 assert.deepEqual(parseSelector('playlists[0..5].{name, image, uri, subscribers.length, owner.{name, username, uri}}'), [{120 name: 'playlists',121 slice: true,122 start: 0,123 end: 5,124 properties: [{125 name: 'name'126 }, {127 name: 'image'128 }, {129 name: 'uri'130 }, {131 name: 'subscribers',132 properties: [{133 name: 'length'134 }]135 }, {136 name: 'owner',137 properties: [{138 name: 'name'139 }, {140 name: 'username'141 }, {142 name: 'uri'143 }]144 }]145 }]);146 });147 it('should parse "tracks[0..10].{ image, artists[].image }"', function() {148 assert.deepEqual(parseSelector('tracks[0..10].{ image, artists[].image }'), [{149 name: 'tracks',150 slice: true,151 start: 0,152 end: 10,153 properties: [{154 name: 'image'155 }, {156 name: 'artists',157 slice: true,158 start: 0,159 end: Infinity,160 properties: [{161 name: 'image'162 }]163 }]164 }]);165 });166 });167 describe('handle malformed', function() {168 it('should fail on "{ unclosed, group"', function() {169 assert.throws(function() { parseSelector('{ unclosed, group') }, SyntaxError);170 });171 it('should fail on "unstarted, group }"', function() {172 assert.throws(function() { parseSelector('unstarted, group }') }, SyntaxError);173 });174 it('should fail on "åäö"', function() {175 assert.throws(function() { parseSelector('åäö') }, SyntaxError);176 });177 });178 });...
json-path-example.js
Source:json-path-example.js
...42var p = jpath.create("#");43var res = p.resolve(data);44expect(res).to.contain(data);45// select the authors of all books:46p = jpath.parseSelector("#/store/book[*][#/author]");47res = jpath.executeSelectors(data, p);48expect(res).to.contain('Evelyn Waugh');49expect(res).to.contain('Nigel Rees');50expect(res).to.contain('Herman Melville');51expect(res).to.contain('J. R. R. Tolkien');52// select all authors:53p = jpath.parseSelector("[..#/author]");54res = jpath.executeSelectors(data, p);55expect(res).to.contain('Evelyn Waugh');56expect(res).to.contain('Nigel Rees');57expect(res).to.contain('Herman Melville');58expect(res).to.contain('J. R. R. Tolkien');59// select all things in store60p = jpath.parseSelector("#/store[*]");61res = jpath.executeSelectors(data, p);62expect(res).to.contain(data.store.book);63expect(res).to.contain(data.store.bicycle);64// resolved.should.eql(data);65// select the price of everything in the store66p = jpath.parseSelector("#/store[..#/price]");67res = jpath.executeSelectors(data, p);68expect(res).to.contain(8.95);69expect(res).to.contain(12.99);70expect(res).to.contain(8.99);71expect(res).to.contain(22.99);72expect(res).to.contain(19.95);73// select the third book74p = jpath.parseSelector("[..#/book/2]");75res = jpath.executeSelectors(data, p);76expect(res).to.contain(data.store.book[2]);77p = jpath.parseSelector("[..#/book[2]]");78res = jpath.executeSelectors(data, p);79expect(res).to.contain(data.store.book[2]);80// select the last book81p = jpath.parseSelector("[..#/book[last]]");82res = jpath.executeSelectors(data, p);83expect(res).to.contain(data.store.book[3]);84// select the first two books85p = jpath.parseSelector("[..#/book[0,1]]");86res = jpath.executeSelectors(data, p);87expect(res).to.contain(data.store.book[0]);88expect(res).to.contain(data.store.book[1]);89// select books without an isbn90p = jpath.parseSelector("[..#/book[*][#/isbn]]");91res = jpath.executeSelectors(data, p);92// select author and title from any book93p = jpath.parseSelector("..#/book[*][take(/author,/title)]");94res = jpath.executeSelectors(data, p);95expect(res[0]).to.eql({96 author: "Nigel Rees",97 title: "Sayings of the Century"98});99expect(res[1]).to.eql({100 author: "Evelyn Waugh",101 title: "Sword of Honour"102});103expect(res[2]).to.eql({104 author: "Herman Melville",105 title: "Moby Dick"106});107expect(res[3]).to.eql({108 author: "J. R. R. Tolkien",109 title: "The Lord of the Rings"110});111// select title and price as cost from any book112p = jpath.parseSelector("..#/book[*][take(/title,cost=/price)]");113res = jpath.executeSelectors(data, p);114expect(res[0]).to.eql({115 title: "Sayings of the Century",116 cost: 8.95117});118expect(res[1]).to.eql({119 title: "Sword of Honour",120 cost: 12.99121});122expect(res[2]).to.eql({123 title: "Moby Dick",124 cost: 8.99125});126expect(res[3]).to.eql({127 title: "The Lord of the Rings",128 cost: 22.99129});130// select books priced more than 10 via a selector fn131// p = jpath.parseSelector("[..#/book[*][!{#/price < 10 || !exists(#/author)}][@myfn]]");132p = jpath.parseSelector("[..#/book[*][@myfn]]");133res = jpath.executeSelectors(data, p, {134 myfn: function(obj, accum, sel) {135 if (obj.price && obj.price < 10)136 accum.push(obj);137 return accum;138 }139});140expect(res).to.contain(data.store.book[0]);141expect(res).to.contain(data.store.book[2]);142p = jpath.create("[..#/book[*][@myfn][#/category]]");143res = p.resolve(data, {144 myfn: function(obj, accum, sel) {145 if (obj.price && obj.price < 10)146 accum.push(obj);147 return accum;148 }149});150expect(res).to.contain(data.store.book[0].category);151expect(res).to.contain(data.store.book[2].category);152p = jpath.resolve(data, '/store/book[first(2)]');153p = jpath.create("#/store/book[*][@]");154var res = p.resolve(data, function(obj, accum, sel) {155 if (obj.price && obj.price < 10)156 accum.push(obj);157 return accum;158});159expect(res).to.contain(data["store"]["book"][0]);160expect(res).to.contain(data["store"]["book"][2]);161expect(res).to.have.length(2);...
Specificity.js
Source:Specificity.js
...8 YUITest.TestRunner.add(new YUITest.TestCase({9 name: "Specificity Tests",10 testSpecificity1: function() {11 var parser = new Parser(),12 selector = parser.parseSelector("*"),13 specificity = Specificity.calculate(selector);14 Assert.areEqual(0, specificity.valueOf());15 Assert.areEqual("0,0,0,0", specificity.toString());16 },17 testSpecificity2: function() {18 var parser = new Parser(),19 selector = parser.parseSelector("li"),20 specificity = Specificity.calculate(selector);21 Assert.areEqual(1, specificity.valueOf());22 Assert.areEqual("0,0,0,1", specificity.toString());23 },24 testSpecificity3: function() {25 var parser = new Parser(),26 selector = parser.parseSelector("li:first-line"),27 specificity = Specificity.calculate(selector);28 Assert.areEqual(2, specificity.valueOf());29 Assert.areEqual("0,0,0,2", specificity.toString());30 },31 testSpecificity4: function() {32 var parser = new Parser(),33 selector = parser.parseSelector("ul li"),34 specificity = Specificity.calculate(selector);35 Assert.areEqual(2, specificity.valueOf());36 Assert.areEqual("0,0,0,2", specificity.toString());37 },38 testSpecificity5: function() {39 var parser = new Parser(),40 selector = parser.parseSelector("ul ol+li"),41 specificity = Specificity.calculate(selector);42 Assert.areEqual(3, specificity.valueOf());43 Assert.areEqual("0,0,0,3", specificity.toString());44 },45 testSpecificity6: function() {46 var parser = new Parser(),47 selector = parser.parseSelector("h1 + *[rel=up]"),48 specificity = Specificity.calculate(selector);49 Assert.areEqual(11, specificity.valueOf());50 Assert.areEqual("0,0,1,1", specificity.toString());51 },52 testSpecificity7: function() {53 var parser = new Parser(),54 selector = parser.parseSelector("ul ol li.red"),55 specificity = Specificity.calculate(selector);56 Assert.areEqual(13, specificity.valueOf());57 Assert.areEqual("0,0,1,3", specificity.toString());58 },59 testSpecificity8: function() {60 var parser = new Parser(),61 selector = parser.parseSelector("li.red.level"),62 specificity = Specificity.calculate(selector);63 Assert.areEqual(21, specificity.valueOf());64 Assert.areEqual("0,0,2,1", specificity.toString());65 },66 testSpecificity9: function() {67 var parser = new Parser(),68 selector = parser.parseSelector(".f00"),69 specificity = Specificity.calculate(selector);70 Assert.areEqual(10, specificity.valueOf());71 Assert.areEqual("0,0,1,0", specificity.toString());72 },73 testSpecificity10: function() {74 var parser = new Parser(),75 selector = parser.parseSelector("div p.foo"),76 specificity = Specificity.calculate(selector);77 Assert.areEqual(12, specificity.valueOf());78 Assert.areEqual("0,0,1,2", specificity.toString());79 },80 testSpecificity11: function() {81 var parser = new Parser(),82 selector = parser.parseSelector("#foo"),83 specificity = Specificity.calculate(selector);84 Assert.areEqual(100, specificity.valueOf());85 Assert.areEqual("0,1,0,0", specificity.toString());86 },87 testSpecificity12: function() {88 var parser = new Parser(),89 selector = parser.parseSelector("body #foo .foo p"),90 specificity = Specificity.calculate(selector);91 Assert.areEqual(112, specificity.valueOf());92 Assert.areEqual("0,1,1,2", specificity.toString());93 },94 testSpecificity13: function() {95 var parser = new Parser(),96 selector = parser.parseSelector("#s12:not(FOO)"),97 specificity = Specificity.calculate(selector);98 Assert.areEqual(101, specificity.valueOf());99 Assert.areEqual("0,1,0,1", specificity.toString());100 }101 }));...
test.js
Source:test.js
...3var _NodeListener = require('component/selector/nodelistener.js');4var _matcher = require('component/selector/selector.js');5var _parser = require('component/selector/parser.js');6var _selector = require('component/selector.js');7function parseSelector(str) {8 var p = new _parser();9 p.parse(str);10}11//parseSelector('div > image');12//parseSelector('div>image');13//parseSelector('a>image>ui');14//parseSelector('a >image>ui');15//parseSelector('a > image>ui');16//parseSelector('a > image>ui');17//parseSelector('a > image>ui');18//parseSelector('a > image > ui');19//parseSelector('a > image > ui');20//parseSelector('a#abc');21//parseSelector('#abc');22//parseSelector('#abc>div');23//parseSelector('div>#abc');24//parseSelector('div > #abc>div');25//parseSelector('div > table#abc > div');26//parseSelector('div > table#abc>div.red');27//parseSelector('a>div.red');28//parseSelector('div.red>div.blue');29//parseSelector('div.red>div#blue');30//parseSelector('div.red>#blue');31//parseSelector('div.red>#blue');32//parseSelector('div[a=b]');33//parseSelector('div.red>div[a=b]');34//parseSelector('div[a=b] div');35//parseSelector('div[a=b] +div');36//parseSelector('div[a=b]+div');37//parseSelector('div#user_name image:focus');38//parseSelector('div#user_name>image:focus');39//parseSelector('div#user_name > image:focus');40function spiltProp(p) {41 var prop = {};42 if (!p || p.length == 0) {43 return prop;44 }45 for (var i = -1, coll = p.split(','), l = coll.length; ++i < l;) {46 var namevalue = coll[i].split('=');47 prop[namevalue[0]] = namevalue[1];48 }49 return prop;50}51function TestNode(type, prop, children) {52 this.type = type;53 this.mTag = type;...
postcss-plugin-version-attribute.js
Source:postcss-plugin-version-attribute.js
...24 if (modified) {25 decl.value = words.toString();26 }27 };28 const processor = parseSelector(transform);29 return {30 Rule(rule) {31 const { selector } = rule;32 if (selector.indexOf(getVersionedAttribute()) === -1) {33 rule.selector = processor.processSync(selector);34 }35 },36 AtRule: {37 keyframes(atRule) {38 atRule.params = getVersionedKeyframeName(atRule.params);39 },40 },41 Declaration: {42 'font-family': decl => {...
parse-selector.test.js
Source:parse-selector.test.js
1import { parseSelector } from "../parse-selector";2describe("parseSelector", () => {3 it("should throw exception when $and, $or or $nor is encountered", () => {4 expect(() => {5 parseSelector({6 $and: [{ foo: "bar" }]7 });8 }).toThrow("$and");9 expect(() => {10 parseSelector({11 baz: "cow",12 $and: [{ foo: "bar" }]13 });14 }).toThrow("$and");15 expect(() => {16 parseSelector({17 $or: [{ foo: "bar" }]18 });19 }).toThrow("$or");20 expect(() => {21 parseSelector({22 baz: "cow",23 $or: [{ foo: "bar" }]24 });25 }).toThrow("$or");26 expect(() => {27 parseSelector({28 $nor: [{ foo: "bar" }]29 });30 }).toThrow("$nor");31 expect(() => {32 parseSelector({33 baz: "cow",34 $nor: [{ foo: "bar" }]35 });36 }).toThrow("$nor");37 expect(() => {38 parseSelector({39 $fooBar: [{ foo: "bar" }]40 });41 }).toThrow("$fooBar");42 expect(() => {43 parseSelector({44 baz: "cow",45 $fooBar: [{ foo: "bar" }]46 });47 }).toThrow("$fooBar");48 });49 it("should throw exception when in encounters invalid field specs", () => {50 // Now handle some invalid selectors...51 expect(() =>52 parseSelector({53 foo: {54 $eq: "foo",55 bar: "baz"56 }57 })58 ).toThrow("$-operators");59 });60 it("should list all fields with all their operators", () => {61 expect(parseSelector({})).toEqual([]);62 expect(parseSelector({ foo: "bar" })).toEqual([63 {64 field: "foo",65 op: "$eq",66 value: "bar"67 }68 ]);69 expect(parseSelector({ foo: null })).toEqual([70 {71 field: "foo",72 op: "$eq",73 value: null74 }75 ]);76 expect(parseSelector({ foo: undefined })).toEqual([77 {78 field: "foo",79 op: "$eq",80 value: undefined81 }82 ]);83 expect(parseSelector({ foo: { $eq: "bar" } })).toEqual([84 {85 field: "foo",86 op: "$eq",87 value: "bar"88 }89 ]);90 expect(parseSelector({ foo: "bar", baz: "cow" })).toEqual([91 {92 field: "foo",93 op: "$eq",94 value: "bar"95 },96 {97 field: "baz",98 op: "$eq",99 value: "cow"100 }101 ]);102 expect(103 parseSelector({ foo: { $exists: true, $nin: ["baz", "cow"] } })104 ).toEqual([105 {106 field: "foo",107 op: "$exists",108 value: true109 },110 {111 field: "foo",112 op: "$nin",113 value: ["baz", "cow"]114 }115 ]);116 expect(parseSelector({ foo: { bar: "baz" } })).toEqual([117 {118 field: "foo",119 op: "$eq",120 value: { bar: "baz" }121 }122 ]);123 expect(parseSelector({ foo: new Date(2015, 3, 1) })).toEqual([124 {125 field: "foo",126 op: "$eq",127 value: new Date(2015, 3, 1)128 }129 ]);130 expect(parseSelector({ foo: {} })).toEqual([131 {132 field: "foo",133 op: "$eq",134 value: {}135 }136 ]);137 });...
parseSelector.js
Source:parseSelector.js
1import test from 'tape';2import { parseSelector } from '../../lib/utils/parseSelector';3test('utils/parseSelector', t => {4 t.deepEqual(parseSelector('p'), [{5 tagName: 'p',6 id: null,7 classNames: null,8 relation: null9 }]);10 t.deepEqual(parseSelector('p.hello'), [{11 tagName: 'p',12 id: null,13 classNames: ['hello'],14 relation: null15 }]);16 t.deepEqual(parseSelector('p.hello.world'), [{17 tagName: 'p',18 id: null,19 classNames: ['hello', 'world'],20 relation: null21 }]);22 t.deepEqual(parseSelector('p#beep'), [{23 tagName: 'p',24 id: 'beep',25 classNames: null,26 relation: null27 }]);28 t.deepEqual(parseSelector('p#beep.boop'), [{29 tagName: 'p',30 id: 'beep',31 classNames: ['boop'],32 relation: null33 }]);34 t.deepEqual(parseSelector('p#beep.boop.bzzt'), [{35 tagName: 'p',36 id: 'beep',37 classNames: ['boop', 'bzzt'],38 relation: null39 }]);40 t.deepEqual(parseSelector('div p'), [{41 tagName: 'p',42 id: null,43 classNames: null,44 relation: ' '45 }, {46 tagName: 'div',47 id: null,48 classNames: null,49 relation: null50 }]);51 t.deepEqual(parseSelector('div > p'), [{52 tagName: 'p',53 id: null,54 classNames: null,55 relation: '>'56 }, {57 tagName: 'div',58 id: null,59 classNames: null,60 relation: null61 }]);62 t.deepEqual(parseSelector('div + p'), [{63 tagName: 'p',64 id: null,65 classNames: null,66 relation: '+'67 }, {68 tagName: 'div',69 id: null,70 classNames: null,71 relation: null72 }]);73 t.deepEqual(parseSelector('p ~ p'), [{74 tagName: 'p',75 id: null,76 classNames: null,77 relation: '~'78 }, {79 tagName: 'p',80 id: null,81 classNames: null,82 relation: null83 }]);84 t.end();...
Using AI Code Generation
1const { parseSelector } = require('playwright/lib/client/selectorParser');2const selector = parseSelector('css=div > span');3console.log(selector);4const { parseSelector } = require('playwright/lib/client/selectorParser');5const selector = parseSelector('css=div > span');6console.log(selector);7const { parseSelector } = require('playwright/lib/client/selectorParser');8const selector = parseSelector('css=div > span');9console.log(selector);10const { parseSelector } = require('playwright/lib/client/selectorParser');11const selector = parseSelector('css=div > span');12console.log(selector);13const { parseSelector } = require('playwright/lib/client/selectorParser');14const selector = parseSelector('css=div > span');15console.log(selector);16const { parseSelector } = require('playwright/lib/client/selectorParser');17const selector = parseSelector('css=div > span');18console.log(selector);19const { parseSelector } = require('playwright/lib/client/selectorParser');20const selector = parseSelector('css=div > span');21console.log(selector);22const { parseSelector } = require('playwright/lib/client/selectorParser');23const selector = parseSelector('css=div > span');24console.log(selector);25const { parseSelector } = require('playwright/lib/client/selectorParser');26const selector = parseSelector('css=div > span');27console.log(selector);28const { parseSelector } = require('playwright/lib/client/selectorParser');29const selector = parseSelector('css=div > span');30console.log(selector);31const { parseSelector } = require('playwright/lib/client/selectorParser');32const selector = parseSelector('css=div > span');33console.log(selector);34const {
Using AI Code Generation
1const { parseSelector } = require('@playwright/test/lib/server/frames');2const { parseSelector: parseSelector2 } = require('@playwright/test/lib/server/frames');3console.log(parseSelector('css=#foo'));4console.log(parseSelector2('css=#foo'));5{ name: 'css', value: '#foo' }6{ name: 'css', value: '#foo' }
Using AI Code Generation
1const { parseSelector } = require('@playwright/test/lib/server/selectorParser');2const selector = parseSelector('css=div#id.class1.class2');3console.log(selector);4{ name: 'css',5 parts: [ 'div#id.class1.class2' ] }6I am trying to use Playwright to test a site that uses a lot of JavaScript to render the page. I am trying to find a way to wait for the page to finish loading before I start evaluating the page. I know that there is a page.waitForLoadState() API, but it seems that it is not working as expected. I have tried to use this API in the following way:7await page.waitForLoadState('networkidle');8await page.waitForTimeout(5000);9await page.waitForLoadState('load');10await page.waitForLoadState('domcontentloaded');11const browser = await chromium.launch({ headless: false });12const page = await browser.newPage();13await browser.close();14await page.close();15const title = await page.title();16console.log(title);17console.log(page.url());18console.log(page.content());
Using AI Code Generation
1const { parseSelector } = require('playwright/lib/utils/selectorParser');2const selector = parseSelector('css=div > span:has-text("Hello")');3console.log(selector);4const { parseSelector } = require('playwright/lib/utils/selectorParser');5console.log(selector);6const { parseSelector } = require('playwright/lib/utils/selectorParser');7const selector = parseSelector('text=Hello');8console.log(selector);9const { parseSelector } = require('playwright/lib/utils/selectorParser');10const selector = parseSelector('text=Hello, World!');11console.log(selector);12const { parseSelector } = require('playwright/lib/utils/selectorParser');13const selector = parseSelector('text="Hello, World!"');14console.log(selector);
Using AI Code Generation
1const selector = playwright.parseSelector('css=button');2console.log(selector);3{4}5const selector = playwright.parseSelector('css=button');6if (selector.specificity === 1) {7 console.log('Unique selector');8} else {9 console.log('Selector is not unique');10}11const selector = playwright.parseSelector('css=button');12if (selector.specificity === 1 && selector.parts[0] === 'button') {13 console.log('Unique selector for element');14} else {15 console.log('Selector is not unique for element');16}
Using AI Code Generation
1const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');2console.log(selector);3const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');4console.log(selector);5const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');6console.log(selector);7const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');8console.log(selector);9const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');10console.log(selector);11const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');12console.log(selector);13const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');14console.log(selector);15const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');16console.log(selector);17const { parseSelector } = require('@playwright/test/lib/utils/selectorParser');18console.log(selector);19const {
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!!