APP测试(appium+Python基础操作)一
一、Appium入门案例
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()
- 常用参数
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
安装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文件所在路径
- 从手机中卸载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包名
- 判断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基础操作)一的更多相关文章
- python基础操作以及hdfs操作
目录 前言 基础操作 hdfs操作 总结 一.前言 作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...
- app自动化测试Appium+python
一.node.js安装 https://nodejs.org/en/download/ ##一直下一步 ###cmd查看 二. .NET Framework安装 https://www.micros ...
- Python菜鸟之路:Python基础-操作缓存memcache、redis
一.搭建memcached和redis 略,自己去百度吧 二.操作Mmecached 1. 安装API python -m pip install python-memcached 2. 启动memc ...
- python学习之路-1 python基础操作
本篇所涉及的内容 变量 常量 字符编码 用户交互input 格式化字符串 python的缩进规则 注释 初始模块 条件判断 循环 变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中 ...
- Python基础操作-集合
在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...
- python基础操作以及变量运用
今天学习关于pycharm的操作以及变量的知识 1.关于pycharm的基本操作,作为一个小白,仪式感还是要有 在基础界面上新建然后打印hello world,也是对python的一种尊重吧 2.关于 ...
- python基础操作
1.打印操作 print('2222') 2.接收用户输入 name=input('name') 3.if else判断 name='qiao'name2='师弟'username=input('输入 ...
- python 基础操作--数据类型
一.变量 1.定义:将运算的中间结果暂存到内存,以便后续程序调用. 2.命名规则 1.变量由字母.数字.下划线搭配组合而成: 2.不可以用数字开头,也不能全都是数字: 3.不能是python 关键字, ...
- Appium + python - TouchAction操作
from appium import webdriverfrom appium.webdriver.common.touch_action import TouchActionfrom appium. ...
随机推荐
- Chrome扩展开发基础教程(附HelloWorld)
1 概述 Chrome扩展开发的基础教程,代码基于原生JS+H5,教程内容基于谷歌扩展开发官方文档. 2 环境 Chrome 88.0.4324.96 Chromium 87.0.4280.141 B ...
- python工业互联网应用实战13—基于selenium的功能测试
本章节我们再来说说测试,单元测试和功能测试.单元测试我们在数据验证章节简单提过了,本章我们进一步如何用单元测试来测试view的功能代码:同时,也涉及一下基于selenium的功能测试做法.笔者过去的项 ...
- k8s 安装 rabbitMQ 单机版
rabbitMQ docker镜像使用rabbitmq:3.8-management service.yaml文件 apiVersion: v1 kind: Service metadata: nam ...
- 数据结构(2):单链表学习使用java实现
单链表是单向链表,它指向一个位置: 单链表常用使用场景:根据序号排序,然后存储起来. 代码Demo: package com.Exercise.DataStructure_Algorithm.Sing ...
- Python容器数据类型之间的转换
强制转换成字符串 str() 将列表(list)转为字符串 var1 = [1, 2, 3, 4] var2 = str(var1) print(type(var2)) # <class 'st ...
- 1-web 服务器 框架。
1.静态网页与动态网页 1.静态网页:无法与服务器进行交互的网页. 2.动态网页:能够与服务器进行交互的网页. 2.web与服务器 1.web:网页(HTML,CSS,JS) 2.服务器:能够给用户提 ...
- DVWA之Command injection(命令执行漏洞)
目录 Low Medium Middle Impossible 命令执行漏洞的原理:在操作系统中, & .&& .| . || 都可以作为命令连接符使用,用户通过浏览器 ...
- (数据科学学习手札120)Python+Dash快速web应用开发——整合数据库
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的系列教程Python+Dash快速web ...
- ERROR: Pool overlaps with other one on this address space
出现问题 配置了两个不同的docker-compose.yml,使用了相同的网段,导致了在运行第二个yml文件时命令行报错目标网段已存在,报错如下: Creating network "v2 ...
- Asp.NetCore 自定义中间件
这节演示一下自定义中间件,第一节我们讲到,中间件的处理流程就像一个俄罗斯套娃,那这种俄罗斯套娃型的流程内部是如何实现的呢,下面请看代码. 第一种写法是直接写在Configure方法中的,使用app ...