# 查看进程ID
netstat -ano | findstr 4723
netstat -ano | findstr 4725

# 杀进程
taskkill /F /PID <PID>
def get_session_id_by_udid(appium_host: str, appium_port: int, udid: str):
    """通过 udid 查询对应的 session_id,使用 http.client 实现"""
    conn = http.client.HTTPConnection(appium_host, appium_port, timeout=10)
    try:
        conn.request("GET", "/wd/hub/sessions")
        resp = conn.getresponse()
        if resp.status != 200:
            raise RuntimeError(f"Failed to get sessions: {resp.status} {resp.reason}")
        data = resp.read()
        sessions_info = json.loads(data.decode("utf-8"))
        sessions = sessions_info.get("value", [])
        for session in sessions:
            caps = session.get("capabilities", {})
            session_udid = caps.get("udid") or caps.get("deviceUDID")
            if session_udid == udid:
                return session.get("id") or session.get("sessionId")
    finally:
        conn.close()
    return None