Appium

360 阅读2分钟
  • 手机驱动对象

      驱动对象会帮助我们完成手机和脚本之间交互.
    
  • 导入driver对象

      from appium import webdriver
    
  • 声明手机驱动对象

    只有声明驱动对象我们才可以让手机完成脚本的操作,声明的方法如下:

    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)  # 声明对象后会直接启动参数中的应用

    desired_caps: ???
  • 手机启动参数
    desired_caps:负责启动服务端时的参数设置,appium server 与手机端建立会话关系时,根据这些参数服务端可以做出相应的处理
 desired_caps常用参数:
    platformName         平台的名称:iOS, Android, or FirefoxOS
    platformVersion      设备系统版本号
    deviceName           设备号 IOS:instruments -s devices,Android: adb devices
    app                  安装文件路径:/abs/path/to/my.apk or http://myapp.com/app
    appActivity          启动的Activity
    appPackage           启动的包
    unicodeKeyboard      unicode设置(允许中文输入)
    resetKeyboard        键盘设置(允许中文输入)
    newCommandTimeout    设置appium的超时时间,默认60s(我想传大文件或者弱网会导致appium超时)
    udid                 有多台设备时,可以使用udid进行选择
    autoGrantPermissions 设置为True,自动跳过权限弹窗
    noReset              不重置应用,保持原有的一些数据(只对Android,iOS不一样的含义)
    fullrestet            重置应用,原有的数据全部清除(只对Android,iOS不一样的含义)
    dontStopAppOnReset    运行程序开始时不退出APP重新启动,在原有的基础上进行
    skipDeviceInitialization 跳过安装、权限设置等操作
    
    # server 启动参数
    desired_caps = {}
    desired_caps['platformName'] = 'Android' 
    desired_caps['platformVersion'] = '5.1'
    desired_caps['deviceName'] = '192.168.56.101:5555'
    desired_caps['appPackage'] = 'com.android.settings'
    desired_caps['appActivity'] = '.Settings'
    desired_caps['unicodeKeyboard'] = True
    desired_caps['resetKeyboard'] = True
  • 脚本内启动其他app
    driver.start_activity(appPackage,appActivity)
  • 关闭app

      driver.close_app()  # 关闭当前操作的app,不会关闭驱动对象
    
  • 关闭驱动对象

    driver.quit()   # 关闭驱动对象,同时关闭所有关联的app
  • 实例代码

      from appium import webdriver
    
      import time
    
      # server 启动参数
      desired_caps = {}
      # 设备信息
      desired_caps['platformName'] = 'Android'
      desired_caps['platformVersion'] = '5.1'
      desired_caps['deviceName'] = '192.168.56.101:5555'
      # app信息
      desired_caps['appPackage'] = 'com.android.settings'
      desired_caps['appActivity'] = '.Settings'
    
      driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
      time.sleep(5)
    
      driver.quit()