from appium.options.android import UiAutomator2Options
import logging
from selenium import webdriver

def app_setup_driver(platformName, platformVersion, deviceName, appPackage, appActivity):

    desired_caps = {
        'platformName': platformName,  # 被测手机是安卓
        'platformVersion': platformVersion,  # 手机安卓版本，如果是鸿蒙系统，依次尝试 12、11、10 这些版本号
        'deviceName': deviceName,  # 设备名，安卓手机可以随意填写
        'appPackage': appPackage,  # 启动APP Package名称
        'appActivity': appActivity,  # 启动Activity名称
        'unicodeKeyboard': True,  # 自动化需要输入中文时填True
        'resetKeyboard': True,  # 执行完程序恢复原来输入法
        'noReset': True,  # 不要重置App
        'newCommandTimeout': 6000,
        'automationName': 'UiAutomator2',
        'skipUnlock': True,
        'autoGrantPermissions': True
    }
    logging.info(f"desired_caps参数：{desired_caps}")

    try:
        logging.info("正在初始化 Appium 驱动程序...")
        driver = webdriver.Remote('http://localhost:4723/wd/hub',
                                  options=UiAutomator2Options().load_capabilities(desired_caps))
        logging.info("Appium 驱动程序初始化成功。")
        return driver
    except Exception as e:
        logging.error(f"初始化驱动程序失败: {e}")
        raise