import os def get_device_name(driver): appium_device = os.getenv("APPIUM_DEVICE") if appium_device: return appium_device.strip() caps = driver.capabilities or getattr(driver, "desired_capabilities", {}) desired_caps = caps.get("desired", {}) or {} bstack_options = caps.get("bstack:options", {}) or {} device_name = ( desired_caps.get("deviceName") or caps.get("deviceModel") or ( f"{caps.get('deviceManufacturer', '')} " f"{caps.get('deviceModel', '')}".strip() if caps.get("deviceManufacturer") and caps.get("deviceModel") else None ) or bstack_options.get("deviceName") or caps.get("appium:deviceName") or caps.get("device") or caps.get("deviceName") ) if not device_name: raise ValueError(f"deviceName not found in env or capabilities:{caps}") return device_name.strip() def get_platform_name(driver): caps = driver.capabilities or getattr(driver, "desired_capabilities", {}) platform_name = ( caps.get("platformName") or caps.get("appium:platformName") ) if not platform_name: raise ValueError(f"platformName not found in capabilities: {caps}") return platform_name.lower().strip()