File tree 2 files changed +18
-2
lines changed
packages/puppeteer-core/src/common
2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -1668,12 +1668,12 @@ export class CDPPage extends Page {
1668
1668
return waitForEvent (
1669
1669
this . #frameManager. networkManager ,
1670
1670
NetworkManagerEmittedEvents . Request ,
1671
- request => {
1671
+ async request => {
1672
1672
if ( isString ( urlOrPredicate ) ) {
1673
1673
return urlOrPredicate === request . url ( ) ;
1674
1674
}
1675
1675
if ( typeof urlOrPredicate === 'function' ) {
1676
- return ! ! urlOrPredicate ( request ) ;
1676
+ return ! ! ( await urlOrPredicate ( request ) ) ;
1677
1677
}
1678
1678
return false ;
1679
1679
} ,
Original file line number Diff line number Diff line change @@ -907,6 +907,22 @@ describe('Page', function () {
907
907
] ) ;
908
908
expect ( request . url ( ) ) . toBe ( server . PREFIX + '/digits/2.png' ) ;
909
909
} ) ;
910
+ it ( 'should work with async predicate' , async ( ) => {
911
+ const { page, server} = getTestState ( ) ;
912
+
913
+ await page . goto ( server . EMPTY_PAGE ) ;
914
+ const [ request ] = await Promise . all ( [
915
+ page . waitForRequest ( async request => {
916
+ return request . url ( ) === server . PREFIX + '/digits/2.png' ;
917
+ } ) ,
918
+ page . evaluate ( ( ) => {
919
+ fetch ( '/digits/1.png' ) ;
920
+ fetch ( '/digits/2.png' ) ;
921
+ fetch ( '/digits/3.png' ) ;
922
+ } ) ,
923
+ ] ) ;
924
+ expect ( request . url ( ) ) . toBe ( server . PREFIX + '/digits/2.png' ) ;
925
+ } ) ;
910
926
it ( 'should respect timeout' , async ( ) => {
911
927
const { page, puppeteer} = getTestState ( ) ;
912
928
You can’t perform that action at this time.
0 commit comments