Update api.py
Browse files
api.py
CHANGED
@@ -257,9 +257,10 @@ async def open_browser(request: Request):
|
|
257 |
ws_url = re.sub(r":\d+", "", ws_url)
|
258 |
browser_info["webSocketDebuggerUrl"] = ws_url
|
259 |
logger.info(f"Browser opened with ID: {browser_id}, Info: {browser_info}")
|
260 |
-
logger.info(f'
|
261 |
-
|
262 |
BROWSERS[browser_id] = {"process": proc, "ws": ws_url, "port": port, "status": "open", "info": browser_info}
|
|
|
263 |
return {"success": True, "msg": "success", "data": {"id": browser_id, "ws": ws_url}, "info": browser_info}
|
264 |
|
265 |
|
@@ -336,7 +337,7 @@ def get_browser_by_id(browser_id: str):
|
|
336 |
return b
|
337 |
|
338 |
|
339 |
-
async def find_browser_by_target_id(target_id: str):
|
340 |
"""
|
341 |
根据 targetId 智能查找对应的浏览器实例
|
342 |
|
@@ -344,10 +345,12 @@ async def find_browser_by_target_id(target_id: str):
|
|
344 |
2. 如果不是,查询所有浏览器实例的页面列表,找到匹配 target_id 的页面所在浏览器
|
345 |
3. 如果找不到,返回第一个可用的浏览器实例
|
346 |
"""
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
|
|
|
|
351 |
# 查询所有浏览器实例,找到匹配的页面
|
352 |
for browser_id, browser in BROWSERS.items():
|
353 |
if browser["status"] != "open":
|
@@ -416,7 +419,7 @@ async def cdp_native_ws_proxy(websocket: WebSocket, tab_type: str, target_id: st
|
|
416 |
await websocket.close()
|
417 |
return
|
418 |
# 智能查找 target_id 对应的浏览器实例
|
419 |
-
browser = await find_browser_by_target_id(target_id)
|
420 |
if not browser:
|
421 |
await websocket.close(code=1008, reason="无法找到有效的浏览器实例")
|
422 |
return
|
|
|
257 |
ws_url = re.sub(r":\d+", "", ws_url)
|
258 |
browser_info["webSocketDebuggerUrl"] = ws_url
|
259 |
logger.info(f"Browser opened with ID: {browser_id}, Info: {browser_info}")
|
260 |
+
logger.info(f'port1111: {port}, ws_url: {ws_url}')
|
261 |
+
|
262 |
BROWSERS[browser_id] = {"process": proc, "ws": ws_url, "port": port, "status": "open", "info": browser_info}
|
263 |
+
logger.info(f'port2222: {port}, ws_url: {ws_url}')
|
264 |
return {"success": True, "msg": "success", "data": {"id": browser_id, "ws": ws_url}, "info": browser_info}
|
265 |
|
266 |
|
|
|
337 |
return b
|
338 |
|
339 |
|
340 |
+
async def find_browser_by_target_id(tab_type,target_id: str):
|
341 |
"""
|
342 |
根据 targetId 智能查找对应的浏览器实例
|
343 |
|
|
|
345 |
2. 如果不是,查询所有浏览器实例的页面列表,找到匹配 target_id 的页面所在浏览器
|
346 |
3. 如果找不到,返回第一个可用的浏览器实例
|
347 |
"""
|
348 |
+
if tab_type == "browser":
|
349 |
+
# 查询所有浏览器实例,找到匹配的页面
|
350 |
+
for browser_id, browser in BROWSERS.items():
|
351 |
+
ws_url = browser.get("info", {}).get("webSocketDebuggerUrl", "")
|
352 |
+
if target_id in ws_url:
|
353 |
+
return browser
|
354 |
# 查询所有浏览器实例,找到匹配的页面
|
355 |
for browser_id, browser in BROWSERS.items():
|
356 |
if browser["status"] != "open":
|
|
|
419 |
await websocket.close()
|
420 |
return
|
421 |
# 智能查找 target_id 对应的浏览器实例
|
422 |
+
browser = await find_browser_by_target_id(tab_type,target_id)
|
423 |
if not browser:
|
424 |
await websocket.close(code=1008, reason="无法找到有效的浏览器实例")
|
425 |
return
|