File tree 2 files changed +22
-12
lines changed
async_api/_core/_managers
2 files changed +22
-12
lines changed Original file line number Diff line number Diff line change @@ -40,17 +40,22 @@ async def get_active_page(self) -> AsyncPage:
40
40
async def _page_on_close_handler (self , page : PlaywrightPage ):
41
41
if self .browser_context and not self .dendrite_browser .closed :
42
42
copy_pages = self .pages .copy ()
43
+ is_active_page = False
43
44
for dendrite_page in copy_pages :
44
45
if dendrite_page .playwright_page == page :
45
46
self .pages .remove (dendrite_page )
47
+ if dendrite_page == self .active_page :
48
+ is_active_page = True
46
49
break
47
50
48
- if self .pages :
49
- self .active_page = self .pages [- 1 ]
50
- await self .active_page .playwright_page .bring_to_front ()
51
- logger .debug ("Switched the active tab to: " , self .active_page .url )
52
- else :
53
- pass
51
+ for i in reversed (range (len (self .pages ))):
52
+ try :
53
+ self .active_page = self .pages [i ]
54
+ await self .pages [i ].playwright_page .bring_to_front ()
55
+ break
56
+ except Exception as e :
57
+ logger .warning (f"Error switching to the next page: { e } " )
58
+ continue
54
59
55
60
async def _page_on_crash_handler (self , page : PlaywrightPage ):
56
61
logger .error (f"Page crashed: { page .url } " )
Original file line number Diff line number Diff line change @@ -35,16 +35,21 @@ def get_active_page(self) -> Page:
35
35
def _page_on_close_handler (self , page : PlaywrightPage ):
36
36
if self .browser_context and (not self .dendrite_browser .closed ):
37
37
copy_pages = self .pages .copy ()
38
+ is_active_page = False
38
39
for dendrite_page in copy_pages :
39
40
if dendrite_page .playwright_page == page :
40
41
self .pages .remove (dendrite_page )
42
+ if dendrite_page == self .active_page :
43
+ is_active_page = True
41
44
break
42
- if self .pages :
43
- self .active_page = self .pages [- 1 ]
44
- self .active_page .playwright_page .bring_to_front ()
45
- logger .debug ("Switched the active tab to: " , self .active_page .url )
46
- else :
47
- pass
45
+ for i in reversed (range (len (self .pages ))):
46
+ try :
47
+ self .active_page = self .pages [i ]
48
+ self .pages [i ].playwright_page .bring_to_front ()
49
+ break
50
+ except Exception as e :
51
+ logger .warning (f"Error switching to the next page: { e } " )
52
+ continue
48
53
49
54
def _page_on_crash_handler (self , page : PlaywrightPage ):
50
55
logger .error (f"Page crashed: { page .url } " )
You can’t perform that action at this time.
0 commit comments