@@ -1180,11 +1180,6 @@ public Response waitForNavigation(Runnable code, WaitForNavigationOptions option
11801180 return withLogging ("Page.waitForNavigation" , () -> waitForNavigationImpl (code , options ));
11811181 }
11821182
1183- @ Override
1184- public Request waitForRequest (Runnable code ) {
1185- return waitForRequest (code , UrlMatcher .any (), null );
1186- }
1187-
11881183 Response waitForNavigationImpl (Runnable code , WaitForNavigationOptions options ) {
11891184 Frame .WaitForNavigationOptions frameOptions = new Frame .WaitForNavigationOptions ();
11901185 if (options != null ) {
@@ -1288,34 +1283,30 @@ public void dispose() {
12881283
12891284 @ Override
12901285 public Request waitForRequest (Runnable code , String urlGlob , WaitForRequestOptions options ) {
1291- return waitForRequest (code , new UrlMatcher (urlGlob ), options );
1286+ return waitForRequest (code , toRequestPredicate ( new UrlMatcher (urlGlob ) ), options );
12921287 }
12931288
12941289 @ Override
12951290 public Request waitForRequest (Runnable code , Pattern urlPattern , WaitForRequestOptions options ) {
1296- return waitForRequest (code , new UrlMatcher (urlPattern ), options );
1297- }
1298-
1299- @ Override
1300- public Request waitForRequest (Runnable code , Predicate <String > urlPredicate , WaitForRequestOptions options ) {
1301- return waitForRequest (code , new UrlMatcher (urlPredicate ), options );
1291+ return waitForRequest (code , toRequestPredicate (new UrlMatcher (urlPattern )), options );
13021292 }
13031293
13041294 @ Override
1305- public Response waitForResponse (Runnable code ) {
1306- return waitForResponse ( code , UrlMatcher . any (), null );
1295+ public Request waitForRequest (Runnable code , Predicate < Request > predicate , WaitForRequestOptions options ) {
1296+ return withLogging ( "Page.waitForRequest" , () -> waitForRequestImpl ( code , predicate , options ) );
13071297 }
13081298
1309- private Request waitForRequest ( Runnable code , UrlMatcher matcher , WaitForRequestOptions options ) {
1310- return withLogging ( "Page.waitForRequest" , () -> waitForRequestImpl ( code , matcher , options ));
1299+ private static Predicate < Request > toRequestPredicate ( UrlMatcher matcher ) {
1300+ return request -> matcher . test ( request . url ( ));
13111301 }
13121302
1313- private Request waitForRequestImpl (Runnable code , UrlMatcher matcher , WaitForRequestOptions options ) {
1303+ private Request waitForRequestImpl (Runnable code , Predicate < Request > predicate , WaitForRequestOptions options ) {
13141304 if (options == null ) {
13151305 options = new WaitForRequestOptions ();
13161306 }
13171307 List <Waitable <Request >> waitables = new ArrayList <>();
1318- waitables .add (new WaitableEvent <>(listeners , EventType .REQUEST , e -> matcher .test (((Request ) e .data ()).url ()))
1308+ waitables .add (new WaitableEvent <>(listeners , EventType .REQUEST ,
1309+ e -> predicate == null || predicate .test (((Request ) e .data ())))
13191310 .apply (event -> (Request ) event .data ()));
13201311 waitables .add (createWaitForCloseHelper ());
13211312 waitables .add (createWaitableTimeout (options .timeout ));
@@ -1324,29 +1315,30 @@ private Request waitForRequestImpl(Runnable code, UrlMatcher matcher, WaitForReq
13241315
13251316 @ Override
13261317 public Response waitForResponse (Runnable code , String urlGlob , WaitForResponseOptions options ) {
1327- return waitForResponse (code , new UrlMatcher (urlGlob ), options );
1318+ return waitForResponse (code , toResponsePredicate ( new UrlMatcher (urlGlob ) ), options );
13281319 }
13291320
13301321 @ Override
13311322 public Response waitForResponse (Runnable code , Pattern urlPattern , WaitForResponseOptions options ) {
1332- return waitForResponse (code , new UrlMatcher (urlPattern ), options );
1323+ return waitForResponse (code , toResponsePredicate ( new UrlMatcher (urlPattern ) ), options );
13331324 }
13341325
13351326 @ Override
1336- public Response waitForResponse (Runnable code , Predicate <String > urlPredicate , WaitForResponseOptions options ) {
1337- return waitForResponse ( code , new UrlMatcher ( urlPredicate ), options );
1327+ public Response waitForResponse (Runnable code , Predicate <Response > predicate , WaitForResponseOptions options ) {
1328+ return withLogging ( "Page.waitForResponse" , () -> waitForResponseImpl ( code , predicate , options ) );
13381329 }
13391330
1340- private Response waitForResponse ( Runnable code , UrlMatcher matcher , WaitForResponseOptions options ) {
1341- return withLogging ( "Page.waitForResponse" , () -> waitForonseImpl ( code , matcher , options ));
1331+ private static Predicate < Response > toResponsePredicate ( UrlMatcher matcher ) {
1332+ return response -> matcher . test ( response . url ( ));
13421333 }
13431334
1344- private Response waitForonseImpl (Runnable code , UrlMatcher matcher , WaitForResponseOptions options ) {
1335+ private Response waitForResponseImpl (Runnable code , Predicate < Response > predicate , WaitForResponseOptions options ) {
13451336 if (options == null ) {
13461337 options = new WaitForResponseOptions ();
13471338 }
13481339 List <Waitable <Response >> waitables = new ArrayList <>();
1349- waitables .add (new WaitableEvent <>(listeners , EventType .RESPONSE , e -> matcher .test (((Response ) e .data ()).url ()))
1340+ waitables .add (new WaitableEvent <>(listeners , EventType .RESPONSE ,
1341+ e -> predicate == null || predicate .test (((Response ) e .data ())))
13501342 .apply (event -> (Response ) event .data ()));
13511343 waitables .add (createWaitForCloseHelper ());
13521344 waitables .add (createWaitableTimeout (options .timeout ));
0 commit comments