File tree Expand file tree Collapse file tree 7 files changed +264
-56
lines changed
Expand file tree Collapse file tree 7 files changed +264
-56
lines changed 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 ( {
7- headless : false
7+ headless : false ,
8+ devtools : true
89 } )
910 const page = await browser . newPage ( )
1011 await page . goto ( 'http://127.0.0.1:5500/test/' )
1112
12- // makes the library available in evaluate functions which run within the browser context
13- await page . addScriptTag ( {
14- path : path . join ( __dirname , 'node_modules/query-selector-shadow-dom/dist/querySelectorShadowDom.js' )
15- } ) ;
16-
17-
1813 // ensure btn exists and return it
19- const btn = ( await page . waitForFunction ( ( ) => {
20- const btn = querySelectorShadowDom . querySelectorDeep ( ".btn-in-shadow-dom" ) ;
21- return btn ;
22- } ) ) . asElement ( ) ;
14+ await page . waitForSelector ( "shadow/.btn-in-shadow-dom" ) ;
15+ const btn = await page . $ ( "shadow/.btn-in-shadow-dom" ) ;
2316 await btn . click ( ) ;
2417 // check btn was clicked (this page expected btn to change text of output)
25- const outputSpan = await page . evaluateHandle ( ( ) => querySelectorShadowDom . querySelectorDeep ( " .output") ) ;
18+ const outputSpan = await page . $ ( "shadow/ .output") ;
2619 const text = await page . evaluate ( ( output ) => output . innerText , outputSpan ) ;
2720 // prints the text from the output
2821 console . log ( text ) ;
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