fix: buildCdpScript add smartProcessResult to prevent CDP serialization error on complex DOM (GitHub issues, Gmail etc); update SOP docs

This commit is contained in:
Liang Jiaqing
2026-03-30 22:30:34 +08:00
parent 18d5aafed8
commit 72a85a0823
3 changed files with 40 additions and 16 deletions

View File

@@ -133,7 +133,7 @@ class TMWebDriver:
current_tab_ids = {str(tab['id']) for tab in tabs}
for sid in list(driver.sessions.keys()):
sess = driver.sessions[sid]
if sess.type == 'ext_ws' and sess.ws_client == self and sid not in current_tab_ids:
if sess.type == 'ext_ws' and sid not in current_tab_ids:
sess.mark_disconnected()
for tab in tabs:
session_id = str(tab['id'])
@@ -172,13 +172,10 @@ class TMWebDriver:
self.latest_session_id = session_id
if self.default_session_id is None: self.default_session_id = session_id
def _unregister_client(self, client: WebSocket) -> None:
for session in self.sessions.values():
if session.ws_client == client:
session.mark_disconnected()
break
if session.ws_client == client: session.mark_disconnected()
def execute_js(self, code, timeout=15, session_id=None) -> Any:
if session_id is None: session_id = self.default_session_id