feat(perception): expose active app metadata in UI tree
Tests / Test passed: 971

This commit is contained in:
2026-07-16 08:13:04 +08:00
parent 059fb272bb
commit 9a17297f1e
13 changed files with 246 additions and 17 deletions
+14
View File
@@ -4,6 +4,7 @@ from dataclasses import dataclass, field
from typing import Any
from core.errors import DeviceOfflineError, DriverError
from core.models import ActiveApp
from driver.base import Driver
@@ -161,6 +162,19 @@ class WDADriver(Driver):
except Exception as exc:
raise DriverError("ui tree retrieval failed") from exc
def active_app(self) -> ActiveApp | None:
client = self._require_client()
try:
response = client.execute_script("mobile: activeAppInfo")
except Exception as exc:
raise DriverError("active app retrieval failed") from exc
if not isinstance(response, dict):
return None
bundle_id = response.get("bundleId")
if not isinstance(bundle_id, str) or not bundle_id:
return None
return ActiveApp(platform="ios", bundle_id=bundle_id)
def home(self) -> None:
client = self._require_client()
try: