@@ -12,8 +12,6 @@ export default async (snapshot: Snapshot, ctx: Context): Promise<ProcessedSnapsh
1212
1313 if ( ( options . ignoreDOM && Object . keys ( options . ignoreDOM ) . length !== 0 ) || ( options . selectDOM && Object . keys ( options . selectDOM ) . length !== 0 ) ) {
1414 if ( ! ctx . browser ) ctx . browser = await chromium . launch ( { headless : true } ) ;
15- const page = await ctx . browser . newPage ( ) ;
16- await page . setContent ( snapshot . dom . html ) ;
1715
1816 let ignoreOrSelectDOM : string ;
1917 let ignoreOrSelectBoxes : string ;
@@ -39,21 +37,27 @@ export default async (snapshot: Snapshot, ctx: Context): Promise<ProcessedSnapsh
3937 case 'xpath' :
4038 selectors . push ( ...value . map ( e => 'xpath=' + e ) ) ;
4139 break ;
42- case 'cssSelectors ' :
40+ case 'cssSelector ' :
4341 selectors . push ( ...value ) ;
4442 break ;
4543 }
4644 }
4745
4846 for ( const vp of ctx . webConfig . viewports ) {
49- await page . setViewportSize ( { width : vp . width , height : vp . height || MIN_VIEWPORT_HEIGHT } ) ;
47+ const page = await ctx . browser . newPage ( { viewport : { width : vp . width , height : vp . height || MIN_VIEWPORT_HEIGHT } } ) ;
48+ await page . setContent ( snapshot . dom . html ) ;
49+
5050 let viewport : string = `${ vp . width } ${ vp . height ? 'x' + vp . height : '' } ` ;
5151 if ( ! Array . isArray ( processedOptions [ ignoreOrSelectBoxes ] [ viewport ] ) ) processedOptions [ ignoreOrSelectBoxes ] [ viewport ] = [ ]
5252
5353 let locators : Array < Locator > = [ ] ;
5454 let boxes : Array < Record < string , number > > = [ ] ;
5555 for ( const selector of selectors ) {
5656 let l = await page . locator ( selector ) . all ( )
57+ if ( l . length === 0 ) {
58+ await page . close ( ) ;
59+ throw new Error ( `no element found for selector ${ selector } ` ) ;
60+ }
5761 locators . push ( ...l ) ;
5862 }
5963 for ( const locator of locators ) {
@@ -67,6 +71,7 @@ export default async (snapshot: Snapshot, ctx: Context): Promise<ProcessedSnapsh
6771 }
6872
6973 processedOptions [ ignoreOrSelectBoxes ] [ viewport ] . push ( ...boxes ) ;
74+ await page . close ( ) ;
7075 }
7176 }
7277 }
0 commit comments