@@ -114,14 +114,29 @@ export class ChromeRenderer extends Renderer {
114
114
}
115
115
116
116
async renderPage ( page , options = { } ) {
117
- let { path : filepath , type } = options ;
117
+ let { path : filepath , type, waitForNavigation } = options ;
118
118
let buffer ;
119
119
120
120
if ( ! isString ( type ) ) {
121
121
type = isString ( filepath ) ? path . extname ( filepath ) . slice ( 1 ) : 'html' ;
122
122
type = type . length > 0 ? type : 'html' ;
123
123
}
124
124
125
+ if ( waitForNavigation !== null && waitForNavigation !== undefined ) {
126
+ if ( waitForNavigation === false ) {
127
+ return ;
128
+ } else if ( waitForNavigation === Object ( waitForNavigation ) ) {
129
+ await page . _chromePage . waitForNavigation ( waitForNavigation ) ;
130
+ } else {
131
+ await page . _chromePage . waitForNavigation ( {
132
+ waitUntil : 'networkidle' ,
133
+ networkIdleInflight : 0 ,
134
+ timeout : 0
135
+ } ) ;
136
+ }
137
+ delete options . waitForNavigation ;
138
+ }
139
+
125
140
switch ( type ) {
126
141
case 'html' :
127
142
buffer = await page . _chromePage . content ( ) ;
@@ -134,12 +149,6 @@ export class ChromeRenderer extends Renderer {
134
149
delete options . emulateMedia ;
135
150
}
136
151
137
- await page . _chromePage . waitForNavigation ( {
138
- waitUntil : 'networkidle' ,
139
- networkIdleInflight : 0 ,
140
- timeout : 0
141
- } ) ;
142
-
143
152
buffer = await page . _chromePage . pdf ( options ) ;
144
153
break ;
145
154
default :
0 commit comments