File tree Expand file tree Collapse file tree 7 files changed +257
-59
lines changed
Expand file tree Collapse file tree 7 files changed +257
-59
lines changed Original file line number Diff line number Diff line change 11const puppeteer = require ( 'puppeteer' ) ;
2- const { queryHandler } = require ( "../../plugins/puppeteer" ) ;
2+ const { QueryHandler } = require ( "../../plugins/puppeteer" ) ;
33( async ( ) => {
44 try {
5- puppeteer . __experimental_registerCustomQueryHandler ( 'shadow' , queryHandler ) ;
5+ await puppeteer . __experimental_registerCustomQueryHandler ( 'shadow' , QueryHandler ) ;
66 const browser = await puppeteer . launch ( {
77 headless : false ,
88 devtools : true
99 } )
1010 const page = await browser . newPage ( )
11- await page . goto ( 'http://127.0.0.1:5501/test/' )
12-
11+ await page . goto ( 'http://127.0.0.1:5500/test/' )
1312
1413 // ensure btn exists and return it
14+ await page . waitForSelector ( "shadow/.btn-in-shadow-dom" ) ;
1515 const btn = await page . $ ( "shadow/.btn-in-shadow-dom" ) ;
16- console . log ( btn ) ;
1716 await btn . click ( ) ;
1817 // check btn was clicked (this page expected btn to change text of output)
1918 const outputSpan = await page . $ ( "shadow/.output" ) ;
Original file line number Diff line number Diff line change 1+ const { QueryHandler } = require ( "../../plugins/puppeteer" ) ;
2+ const puppeteer = require ( 'puppeteer' )
3+
4+ const main = async ( ) => {
5+ await puppeteer . __experimental_registerCustomQueryHandler ( 'shadow' , QueryHandler ) ;
6+
7+ const browser = await puppeteer . chromium . launch ( { headless : false } )
8+ const context = await browser . newContext ( { viewport : null } )
9+ const page = await context . newPage ( )
10+
11+ await page . goto ( 'chrome://downloads' )
12+
13+ const element = await page . waitForSelector ( 'shadow/div' , { timeout : 3000 } )
14+ const span = await element . $$ ( "shadow/div > .illustration + span" )
15+ console . log ( span )
16+ await new Promise ( resolve => setTimeout ( resolve , 3000 ) )
17+
18+ await page . close ( )
19+ await context . close ( )
20+ await browser . close ( )
21+ }
22+
23+ main ( )
Original file line number Diff line number Diff line change 1+ const puppeteer = require ( 'puppeteer' ) ;
2+ const { QueryHandler } = require ( "../../plugins/puppeteer" ) ;
3+ ( async ( ) => {
4+ try {
5+ await puppeteer . __experimental_registerCustomQueryHandler ( 'shadow' , QueryHandler ) ;
6+ const browser = await puppeteer . launch ( {
7+ headless : false
8+ } )
9+ const page = await browser . newPage ( )
10+ await page . goto ( 'http://127.0.0.1:5500/test/' )
11+ await page . waitForSelector ( "shadow/.btn-in-shadow-dom" )
12+ const elements = await page . $$ ( "*" ) ;
13+ const elementsShadow = await page . $$ ( "shadow/*" ) ;
14+ console . log ( "All Elements on Page Excluding Shadow Dom" , elements . length ) ;
15+ console . log ( "All Elements on Page Including Shadow Dom" , elementsShadow . length ) ;
16+
17+ await browser . close ( )
18+
19+ } catch ( e ) {
20+ console . error ( e ) ;
21+ }
22+
23+ } ) ( )
Original file line number Diff line number Diff line change 11const puppeteer = require ( 'puppeteer' ) ;
2- const path = require ( 'path' ) ;
3- const fs = require ( 'fs' ) ;
2+ const { QueryHandler } = require ( "../../plugins/puppeteer" ) ;
43( async ( ) => {
54 try {
5+ await puppeteer . __experimental_registerCustomQueryHandler ( 'shadow' , QueryHandler ) ;
66 const browser = await puppeteer . launch ( {
77 headless : false
88 } )
99 const page = await browser . newPage ( )
1010 await page . goto ( 'http://127.0.0.1:5500/test/' )
11- // makes the library available in evaluate functions which run within the browser context
12- await page . addScriptTag ( {
13- path : path . join ( __dirname , 'node_modules/query-selector-shadow-dom/dist/querySelectorShadowDom.js' )
14- } ) ;
1511
12+ const inputElement = await page . waitForSelector ( "shadow/#type-to-input" ) ;
1613
17- // returns an https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#class-elementhandle
18- const inputElement = ( await page . waitForFunction ( ( ) => {
19- return querySelectorShadowDom . querySelectorDeep ( "#type-to-input" ) ;
20- } ) ) . asElement ( ) ;
21-
22- // https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#elementhandletypetext-options
2314 await inputElement . type ( "Typed text to input" ) ;
2415
2516 const value = await page . evaluate ( inputElement => inputElement . value , inputElement ) ;
26- console . log ( value ) ;
17+ console . log ( "Value" , value ) ;
2718
2819 await browser . close ( )
2920
You can’t perform that action at this time.
0 commit comments