Skip to content

Commit 4d1fce5

Browse files
committed
fix: 添加异常处理以防止客户端断开连接导致的错误,并更新PageController中的函数参数
1 parent dc70427 commit 4d1fce5

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

browser_utils/operations.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,9 @@ async def _wait_for_response_completion(
537537
consecutive_empty_input_submit_disabled_count = 0
538538

539539
while True:
540-
if check_client_disconnected_func(current_chat_id, req_id):
540+
try:
541+
check_client_disconnected_func("等待响应完成 - 循环开始")
542+
except ClientDisconnectedError:
541543
logger.info(f"[{req_id}] (WaitV3) 客户端断开连接,中止等待。")
542544
return False
543545

@@ -547,7 +549,9 @@ async def _wait_for_response_completion(
547549
await save_error_snapshot(f"wait_completion_v3_overall_timeout_{req_id}")
548550
return False
549551

550-
if check_client_disconnected_func(current_chat_id, req_id):
552+
try:
553+
check_client_disconnected_func("等待响应完成 - 超时检查后")
554+
except ClientDisconnectedError:
551555
return False
552556

553557
# --- 主要条件: 输入框空 & 提交按钮禁用 ---
@@ -558,7 +562,9 @@ async def _wait_for_response_completion(
558562
except TimeoutError:
559563
logger.warning(f"[{req_id}] (WaitV3) 检查提交按钮是否禁用超时。为本次检查假定其未禁用。")
560564

561-
if check_client_disconnected_func(current_chat_id, req_id):
565+
try:
566+
check_client_disconnected_func("等待响应完成 - 按钮状态检查后")
567+
except ClientDisconnectedError:
562568
return False
563569

564570
if is_input_empty and is_submit_disabled:
@@ -575,7 +581,9 @@ async def _wait_for_response_completion(
575581
if DEBUG_LOGS_ENABLED:
576582
logger.debug(f"[{req_id}] (WaitV3) 主要条件满足后,检查编辑按钮可见性超时。")
577583

578-
if check_client_disconnected_func(current_chat_id, req_id):
584+
try:
585+
check_client_disconnected_func("等待响应完成 - 编辑按钮检查后")
586+
except ClientDisconnectedError:
579587
return False
580588

581589
# 启发式完成: 如果主要条件持续满足,但编辑按钮仍未出现

browser_utils/page_controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ async def get_response(self, check_client_disconnected: Callable) -> str:
611611

612612
self.logger.info(f"[{self.req_id}] 等待响应完成...")
613613
completion_detected = await _wait_for_response_completion(
614-
self.page, input_field_locator, submit_button_locator, edit_button_locator, self.req_id, check_client_disconnected
614+
self.page, input_field_locator, submit_button_locator, edit_button_locator, self.req_id, check_client_disconnected, None
615615
)
616616

617617
if not completion_detected:

0 commit comments

Comments
 (0)