一、Appium入门案例

  1. demo

    from appium import webdriver
    from time import sleep # server 启用参数
    desired_caps = {} # 设备信息
    desired_caps['platformName'] = 'Android' # 设备名称
    desired_caps['platformVersion'] = '7.1.2' # 设备版本
    desired_caps['deviceName'] = '127.0.0.1:62001' # 设备号 # app信息
    desired_caps['appPackage'] = 'com.android.settings' # 应用包名
    desired_caps['appActivity'] = '.Settings' # 启动的activity desired_caps["automationName"] = 'UiAutomator1' # 解决新版appium报错 driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    sleep(3)
    # 关闭app driver对象不会关闭
    driver.close_app() sleep(3)
    # 关闭驱动对象
    driver.quit()
    1. 常用参数
    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 键盘设置(允许中文输入)

二、App操作API

  1. 安装apk到手机中

    import os
    
    from appium import webdriver
    from time import sleep # server 启用参数
    desired = {
    # 设备信息
    'platformName': 'Android', # 设备名称
    'platformVersion': '7.1.2', # 设备版本
    'deviceName': '127.0.0.1:62001', # 设备号
    # app信息
    'appPackage': 'com.android.settings', # 应用包名
    'appActivity': '.Settings', # 启动的activity
    # 解决新版appium报错
    'automationName': 'UiAutomator1'
    } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired)
    sleep(3)
    # 下载apk
    driver.install_app(os.getcwd() + os.sep + "jisuanqi.apk")
    sleep(3)
    # 关闭app driver对象不会关闭
    driver.close_app() sleep(3)
    # 关闭驱动对象
    driver.quit()
    • 说明:

      driver.install_app(app_path)

      参数:app_path:APK文件所在路径

    1. 从手机中卸载apk
    import os
    
    from appium import webdriver
    from time import sleep # server 启用参数
    desired = {
    # 设备信息
    'platformName': 'Android', # 设备名称
    'platformVersion': '7.1.2', # 设备版本
    'deviceName': '127.0.0.1:62001', # 设备号
    # app信息
    'appPackage': 'com.youba.calculate', # 应用包名
    'appActivity': '.MainActivity', # 启动的activity
    # 解决新版appium报错
    'automationName': 'UiAutomator1'
    } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired)
    sleep(3)
    # 卸载apk
    driver.remove_app("com.youba.calculate")
    sleep(3)
    # 关闭app driver对象不会关闭
    driver.close_app()
    # 关闭驱动对象
    driver.quit()
    • 说明:

      driver.remove_app(app_id)

      参数:app_id:需要卸载的app包名

    1. 判断APP是否有安装
    import os
    
    from appium import webdriver
    from time import sleep # server 启用参数
    desired = {
    # 设备信息
    'platformName': 'Android', # 设备名称
    'platformVersion': '7.1.2', # 设备版本
    'deviceName': '127.0.0.1:62001', # 设备号
    # app信息
    'appPackage': 'com.android.settings', # 应用包名
    'appActivity': '.Settings', # 启动的activity
    # 解决新版appium报错
    'automationName': 'UiAutomator1'
    } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired)
    sleep(3)
    result = driver.is_app_installed("com.youba.calculate")
    print(result)
    # 判断是否有com.youba.calculate该apk,有就删除 True,没有就下载 False
    if result:
    driver.remove_app("com.youba.calculate")
    else:
    driver.install_app(os.getcwd() + os.sep + "jisuanqi.apk")
    sleep(3)
    # 关闭app driver对象不会关闭
    driver.close_app()
    # 关闭驱动对象
    driver.quit()
    • 说明:

      driver.is_app_installed(bundle_id)

      参数:bundle_id: 可以传入app包名,返回结果为True(已安装) / False(未安装)

最新文章

  1. 限制EditText最多输入多少汉字
  2. C# 文件及文件夹深度复制
  3. DB
  4. bootstrap-15
  5. ADURL简化程序
  6. uva 1658(最小费用最大流)
  7. WPF文本框密码框添加水印效果
  8. elasticsearch从mysql导入数据
  9. 内存不足(OutOfMemory)的调试分析
  10. css link和@import区别用法
  11. ecshop后台限制IP登录
  12. js console.log 打印 对像 数组 详解
  13. #include <strstream>
  14. c语言,数据类型转换
  15. Java 基础 break和continue关键字的使用
  16. .net core 使用Redis的发布订阅
  17. PPT的应用
  18. Dynamics CRM2013/2015 禁止欢迎界面(Disable the Welcome Screen)
  19. laydate日期空间与时间选择器
  20. 安卓Android基础第五天

热门文章

  1. 6. linux 专业词汇
  2. 幻读:听说有人认为我是被MVCC干掉的
  3. 浅谈跨域问题,CORS跨域资源共享
  4. 1019 General Palindromic Number
  5. Semi-Prime(set)
  6. Docker 实践搭建php环境
  7. Think5之ajax批量删除数据功能
  8. Thinkphp5 -项目前序安装Composer命令工具具体步骤
  9. 【Vue】Vue学习(一)-Vue指令
  10. pwn 好的联系网站