@@ -128,8 +128,9 @@ async def _create_page(self, request: Request) -> Page:
128128 context = await self ._create_browser_context (context_name , context_kwargs )
129129 self .contexts [context_name ] = context
130130 page = await context .new_page ()
131- page .on ("request" , _make_request_logger (context_name ))
132131 page .on ("response" , _make_response_logger (context_name ))
132+ page .on ("request" , _make_request_logger (context_name ))
133+ page .on ("request" , self ._increment_request_stats )
133134 self .stats .inc_value ("playwright/page_count" )
134135 if self .default_navigation_timeout :
135136 page .set_default_navigation_timeout (self .default_navigation_timeout )
@@ -227,6 +228,14 @@ async def _download_request_with_page(self, request: Request, page: Page) -> Res
227228 flags = ["playwright" ],
228229 )
229230
231+ def _increment_request_stats (self , request : PlaywrightRequest ) -> None :
232+ stats_prefix = "playwright/request_count"
233+ self .stats .inc_value (stats_prefix )
234+ self .stats .inc_value (f"{ stats_prefix } /resource_type/{ request .resource_type } " )
235+ self .stats .inc_value (f"{ stats_prefix } /method/{ request .method } " )
236+ if request .is_navigation_request ():
237+ self .stats .inc_value (f"{ stats_prefix } /navigation" )
238+
230239 def _make_close_browser_context_callback (self , name : str ) -> Callable :
231240 def close_browser_context_callback () -> None :
232241 logger .debug ("Browser context closed: '%s'" , name )
@@ -254,12 +263,5 @@ def request_handler(route: Route, pw_request: PlaywrightRequest) -> None:
254263 if headers .get ("user-agent" ):
255264 overrides ["headers" ]["user-agent" ] = headers ["user-agent" ]
256265 asyncio .create_task (route .continue_ (** overrides ))
257- # increment stats
258- self .stats .inc_value ("playwright/request_count" )
259- resource_type = pw_request .resource_type
260- self .stats .inc_value (f"playwright/request_count/resource_type/{ resource_type } " )
261- self .stats .inc_value (f"playwright/request_count/method/{ pw_request .method } " )
262- if pw_request .is_navigation_request ():
263- self .stats .inc_value ("playwright/request_count/navigation" )
264266
265267 return request_handler
0 commit comments