appium是用来元素定位
appium使用安装
1、安装appium(默认安装c盘),安装过程较长
2、jdk(之前已安装)
3、安装sdk并配置环境变量
3.1.勾选android sdk toole
3.2.勾选android sdk biuld-tools
3.3.勾选android platform-tools
4、配置android环境变量—系统变量
4.1.新建变量android_home 值:sdk安装路径
4.2.找到path变量
4.2.1配置sdk安装路径下tools目录的路径
4.2.2配置sdk安装路径下biuld-tools\19.1.0目录的路径
4.2.3配置sdk安装路径下platform-tools目录的路径
5、安装python
在pychrm中安装appium-python-client——0.51(指定版本下载)
6、安装夜神模拟器
7、连接测试机
7.1.进入设置—关于本机—连续点击版本号—开启开发者模块
7.2.进入开发者模式—打开“usb调式“
在dos命令下输入adb devices 验证连接
7.3.夜神连接 ip和端口号: adb connect 127.0.0.1:62001
逍遥模拟器: adb connect 127.0.0.1:21503
如果连接模拟器出现报错:将夜神模拟器安装包下bin目录中nox_adb.exe文件复制到sdk安装目录下platform-tools目录中重命名为adb.exe,替换掉现有的adb.exe文件,重新连接模拟器
app自动化
app端的ui自动化
先进到包的路径输入命令aapt d badging baiduyuedu_3760.apk
adb常用命令(dos)
adb devices——查看设备连接
adb connect 127.0.0.1:62001——链接夜神模拟器
adb version——查看当前adb版本
adb start-server——启动adb服务
adb kill-server——关闭adb服务
adb install apk包路径——安装apk应用包
adb uninstall 上面查出来的包名称——卸载
adb shell pm list package -3——显示所有第三方app包名
adb shell pm list packages——显示所有应用包名
adb reboot——重启模拟器
adb shell wm size——获取设备分辨率
adb logcat——查看所有进程运行日志
adb logcat|find"com.baidu.yuedu"(查出来的包名称)——查看指定APP百度阅读的日志
元素定位
id对应控件属性列表中的resource-id
定位:
from appium import webdriver
import time
from yao.apphuadong import *
#连接appium的数据赋予一个变量接受
desired_caps={
"platformName": "Android",
"deviceName": "127.0.0.1:62001",
"platformVersion": "7.1.2",
"appPackage": "com.baidu.yuedu",
"appActivity": "com.baidu.yuedu.splash.SplashActivity",
"unicodeKeyboard": "True",
"resetKeyboard": "True",
"noReset": "True"
}
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) #通过地址跟谁通讯
driver.implicitly_wait(40) #隐式等待40秒
driver.find_element_by_id('com.baidu.yuedu:id/rl_useraccount_contrainer').click() #通过id定位点击‘我的’
driver.implicitly_wait(40)
time.sleep(10)
driver.find_element_by_id('com.baidu.yuedu:id/ll_book_container').click() #通过id定位点击‘书架’
driver.implicitly_wait(40)
time.sleep(10)
driver.find_element_by_id('com.baidu.yuedu:id/ll_book_store_container').click() #通过id定位点击‘精选’
driver.implicitly_wait(40)
time.sleep(10)
driver.tap([(90,41),(171,116)],500) #通过坐标定位点击‘男生’ 坐标定位不用.click点击,多少时间内完成这个动作500是毫秒
driver.implicitly_wait(40)
time.sleep(10)
driver.tap([(333,41),(404,116)],500) #通过坐标定位点击‘VIP’
driver.implicitly_wait(40)
time.sleep(10)
driver.tap([(35,459),(184,658)],500) #通过坐标定位点击‘明朝那些事儿全集’
driver.implicitly_wait(40)
time.sleep(10)
driver.back() #返回
time.sleep(10)
driver.quit() #退出
滑动
设置—开发者选项—打开指针位置
# size=driver.get_window_size() #获取屏幕大小
# print(size) #{'width':900,'heighe':1600}
driver.swipe(360,1200,360,100,500) #页面下滑 (开始x坐标,开始y坐标,结束x坐标,结束y坐标,持续时间)
driver.swipe(360,933,360,1200,500) #页面上滑
driver.swipe(0,0,600,0,500) #页面左滑
driver.swipe(600,0,0,0,500) #页面右滑
driver.quit() #退出
# size=driver.get_window_size() #获取屏幕大小# print(size) #{'width':900,'heighe':1600}driver.swipe(360,1200,360,100,500) #页面下滑 (开始x坐标,开始y坐标,结束x坐标,结束y坐标,持续时间)driver.swipe(360,933,360,1200,500) #页面上滑driver.swipe(0,0,600,0,500) #页面左滑driver.swipe(600,0,0,0,500) #页面右滑driver.quit() #退出
滑动封装
import time
#页面下滑
def downswipe(driver,t): #定义函数
size1=driver.get_window_size() #获取屏幕大小 {'width': 720, 'height': 1280}键值对
x=size1['width']/2
y1=size1['height']*0.8
y2=size1['height']*0.2
for i in range(t): #循环滑动 遍历函数t
driver.swipe(x,y1,x,y2,500)
time.sleep(10)
#页面上滑
def upswipe(driver,t): #定义函数
size1=driver.get_window_size() #获取屏幕大小 {'width':900,'heighe':1600}键值对
x=size1['width']/2
y1=size1['height']*0.2
y2=size1['height']*0.8
for i in range(t): #循环滑动 遍历函数t
driver.swipe(x,y1,x,y2,500)
time.sleep(10)
#页面左滑
def leftswipe(driver,t): #定义函数
size1=driver.get_window_size() #获取屏幕大小 {'width':900,'heighe':1600}键值对
x1=size1['width']*0.2
x2=size1['width']*0.8
y=size1['height']/2
for i in range(t): #循环滑动 遍历函数t
driver.swipe(x1,y,x2,y,500)
time.sleep(10)
#页面右滑
def rightswipe(driver,t): # 定义函数
size1=driver.get_window_size() #获取屏幕大小 {'width':900,'heighe':1600}键值对
x1=size1['width']*0.8
x2=size1['width']*0.2
y=size1['height']/2
for i in range(t): #循环滑动 遍历函数t
driver.swipe(x1,y,x2,y,500)
time.sleep(10)
调用滑动封装
from yao.apphuadong import * #导入封装的滑动函数
downswipe(driver,2) #下滑2次
upswipe(driver,2) #上滑2次
leftswipe(driver,3) #左滑3次
rightswipe(driver,3) #右滑3次
|
|