1616
1717package com .microsoft .playwright ;
1818
19+ import com .google .gson .Gson ;
1920import com .google .gson .JsonElement ;
2021import com .google .gson .JsonObject ;
2122import org .junit .jupiter .api .Test ;
@@ -49,7 +50,12 @@ void shouldSendEvents() {
4950 cdpSession .send ("Network.enable" );
5051
5152 List <JsonElement > events = new ArrayList <>();
52- cdpSession .on ("Network.requestWillBeSent" , events ::add );
53+ cdpSession .on ("Network.requestWillBeSent" , (JsonObject jsonObject ) -> {
54+ // Only register main request, ignore favicon requests.
55+ if ("Document" .equals (jsonObject .get ("type" ).getAsString ())) {
56+ events .add (jsonObject );
57+ }
58+ });
5359 page .navigate (server .EMPTY_PAGE );
5460
5561 assertEquals (1 , events .size ());
@@ -136,8 +142,14 @@ void shouldAddMultipleEventListeners() {
136142 cdpSession .send ("Network.enable" );
137143
138144 List <JsonObject > events = new ArrayList <>();
139- cdpSession .on ("Network.requestWillBeSent" , events ::add );
140- cdpSession .on ("Network.requestWillBeSent" , events ::add );
145+ Consumer <JsonObject > listener1 = (JsonObject jsonObject ) -> {
146+ // Only register main request, ignore favicon requests.
147+ if ("Document" .equals (jsonObject .get ("type" ).getAsString ())) {
148+ events .add (jsonObject );
149+ }
150+ };
151+ cdpSession .on ("Network.requestWillBeSent" , listener1 );
152+ cdpSession .on ("Network.requestWillBeSent" , listener1 );
141153
142154 page .navigate (server .EMPTY_PAGE );
143155 assertEquals (2 , events .size ());
@@ -149,9 +161,15 @@ void shouldRemoveEventListeners() {
149161 cdpSession .send ("Network.enable" );
150162
151163 List <JsonObject > events = new ArrayList <>();
152- Consumer <JsonObject > listener1 = events ::add ;
164+ Consumer <JsonObject > listener1 = (JsonObject jsonObject ) -> {
165+ // Only register main request, ignore favicon requests.
166+ if ("Document" .equals (jsonObject .get ("type" ).getAsString ())) {
167+ events .add (jsonObject );
168+ }
169+ };
170+ Consumer <JsonObject > listener2 = listener1 ::accept ;
153171 cdpSession .on ("Network.requestWillBeSent" , listener1 );
154- cdpSession .on ("Network.requestWillBeSent" , events :: add );
172+ cdpSession .on ("Network.requestWillBeSent" , listener2 );
155173
156174 page .navigate (server .EMPTY_PAGE );
157175 assertEquals (2 , events .size ());
@@ -160,6 +178,6 @@ void shouldRemoveEventListeners() {
160178 events .clear ();
161179
162180 page .navigate (server .EMPTY_PAGE );
163- assertEquals (1 , events .size ());
181+ assertEquals (1 , events .size (), new Gson (). toJson ( events ) );
164182 }
165183}
0 commit comments