一、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(未安装)

APP测试(appium+Python基础操作)一的更多相关文章

  1. python基础操作以及hdfs操作

    目录 前言 基础操作 hdfs操作 总结 一.前言        作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...

  2. app自动化测试Appium+python

    一.node.js安装 https://nodejs.org/en/download/ ##一直下一步 ###cmd查看 二.  .NET Framework安装 https://www.micros ...

  3. Python菜鸟之路:Python基础-操作缓存memcache、redis

    一.搭建memcached和redis 略,自己去百度吧 二.操作Mmecached 1. 安装API python -m pip install python-memcached 2. 启动memc ...

  4. python学习之路-1 python基础操作

    本篇所涉及的内容 变量 常量 字符编码 用户交互input 格式化字符串 python的缩进规则 注释 初始模块 条件判断 循环 变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中 ...

  5. Python基础操作-集合

    在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...

  6. python基础操作以及变量运用

    今天学习关于pycharm的操作以及变量的知识 1.关于pycharm的基本操作,作为一个小白,仪式感还是要有 在基础界面上新建然后打印hello world,也是对python的一种尊重吧 2.关于 ...

  7. python基础操作

    1.打印操作 print('2222') 2.接收用户输入 name=input('name') 3.if else判断 name='qiao'name2='师弟'username=input('输入 ...

  8. python 基础操作--数据类型

    一.变量 1.定义:将运算的中间结果暂存到内存,以便后续程序调用. 2.命名规则 1.变量由字母.数字.下划线搭配组合而成: 2.不可以用数字开头,也不能全都是数字: 3.不能是python 关键字, ...

  9. Appium + python - TouchAction操作

    from appium import webdriverfrom appium.webdriver.common.touch_action import TouchActionfrom appium. ...

随机推荐

  1. editorconfig、eslint、prettier三者的区别、介绍及使用

    每次搭建新项目都少不了这些工具,但时间一久就忘记了,下次搭新项目时又要四处查官方文档,因此特此记录,主要内容是对这三个工具的理解,以及具体使用方式 editorconfig 理解 先看官网的定义: E ...

  2. C语言-内存函数的实现(二)之memmove

    C语言中的内存函数有如下这些 memcpy memmove memcmp memset 下面看看memmove函数 memmove 为什么会需要memmove函数? int main() { int ...

  3. Redis 面试必备知识点

    1.Redis 简介 是一个用 C 语言开发的,高性能的键值对数据库. 数据存在于内存,读写速度快. 可用来做缓存.分布式锁.消息队列. 提供多种数据类型来支持不同的业务场景. 支持事务.持久化.Lu ...

  4. LA2678最短子序列

    题意:       给你一个正整数序列,问你在里面找到一个最短的子序列,要求子序列的和大于等于k,输出序列长度. 思路:       这个序列的每个数字都是正整数,那么就比较好想了,我们可以直接枚举终 ...

  5. Swift系列二 - 循环控制

    一.if-else if后面的条件可以省略小括号 条件后面的大括号不可以省略 let age = 10 if age >= 18 { print("大学") } else i ...

  6. (Py练习)判断能被几个9整除

    # 输入一个奇数,判断最少几个9除以该数的结果为整数 # 999999 / 13 = 76923 if __name__ == '__main__': zi = int(input("输入一 ...

  7. druid-spring-boot-starter的配置

    #数据源基本信息 spring: datasource: druid: username: root password: 123456 url: jdbc:mysql://localhost:3306 ...

  8. Docker为PHP安装gd扩展

    安装扩展库的通常命令 docker-php-ext-install 扩展库名 安装gd库需要特殊照顾,步骤如下 //进入PHP容器 //更新软件源 apt update //安装各种库 apt ins ...

  9. js实现倒计时函数

    function updateEndTime() { //当前时间,距1970年1月1日的秒数 var date = new Date(); var time = (date.getTime())/1 ...

  10. 21.Quick QML-FileDialog、FolderDialog对话框

    1.FileDialog介绍 Qt Quick中的FileDialog文件对话框支持的平台有: 笔者使用的是Qt 5.8以上的版本,模块是import Qt.labs.platform 1.1. 它的 ...