adb shell monkey -p com.lqr.wechat -v 500 > monkey.log
adb shell monkey -p com.lqr.wechat -vvv 5000 > monkey2.log
adb shell monkey -p com.lqr.wechat -vvv 5000 --send=1556166765229 --throttle 500 > monkey3.log
adb shell monkey -p com.lqr.wechat -vvv 5000 --send=1556166765229 --ignore-crashes > monkey4.log
参数:
可通过命令行指定
指定事件百分比
手动停止Monkey
adb shell
ps | grep monkey (查询进程号)
kill 进程号
启动和配置
定位和操作元素
录制
通过resource_id: find_element_by_id:
通过content-desc: find_element_by__accessibility_id
通过xpath: 结合属性/上下级节点/索引定位
重复元素+索引定位: l = find_elements_by_… l[1].click()
逐级定位: driver.find_element_by_id(…).find_element_by_class_name(…)
使用By及元素定位器
from appium.webdriver.common.mobileby import By
driver.find_element(By.ID, "….")
1.通过id定位
driver.find_element_by_android_uiautomator('new UiSelector().resourceId(“id”)').click()
通过text定位
driver.find_element_by_android_uiautomator('new UiSelector().text("textstr")')
driver.find_element_by_android_uiautomator('new UiSelector().textContains(textStr)')
driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith(textStr)')
通过class属性定位
driver.find_element_by_android_uiautomator('new UiSelector().className("class属性")')
多属性定位
driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView").text("Custom View")')
可作为过滤条件的有:
UISelector.text
UISelector.textContains
UISelector.textStartsWith
UiSelector.resourceId
UISelector.className
UISelector.textMatches
UISelector.classNameMatches
UiSelector.fromParent
UiSelector.childSelector
UiSelector.resourceIdMatches
UiSelector.description
UiSelector.descriptionStartWith
UiSelector.descriptionMatches
click()
send_keys()
clear()
is_displayed()/is_enabled()/is_checked()
get_attribute(): 获取属性 文本/状态/是否可操作等
set_value(): 设置text值
text: 元素的文本
location: 获取元素坐标值
size: 获取元素大小
练习
noReset: True
1. 打开微信应用 ,判断是否存在 登录按钮
2. 如果已经登录,登录按钮不存在 ,就直接进入登录页,打印 通讯录的这些属性值, resourceid,text,className,enabled,clickable,selected,Displayed
c = driver.find...()
print(c.get_attribute("clickable"))
print(c.is_enabled()/c.is_displayed()/c.is_selected())
如果登录按钮存在 ,打印这个登录按钮的上面的属性值resourceid,text,className,enabled,clickable,selected,Displayed, 并点击登录按钮,
使用set_value())输入用户名密码
判断登录按钮是否可用,
可用的话打印可用,并点击登录,判断是否登录成功
不可用打印不可用
3. 退出应用
练习提示
try: # 尝试定位登录按钮
l = driver.find_element_by_id("")
except: # 未定位到
print(“没有登录按钮”)
c = driver.find_....() # 定位 通讯录 标签
print(c.get_attribute('resource-id') # 打印各种属性
print(c.text)
print(c.get_attribute(“class”)
print(c.is_enabled())
....
else: # 如果没有异常(定位到了登录按钮)
print(l.get_attribute("resource-id") # 打印登录按钮的各种属性
print(l.text)
print(l.get_attribute(“class”)
print(l.is_enabled())
...
l.click() # 点击登录按钮
driver.find…().set_value("18010181267") # 使用set_value输入文字
driver.find…().set_value("123456") # 使用set_value输入密码
l2 = driver.find..() # 定位 登录 按钮
if l2.is_enabled() is True: # 判断 登录按钮 是否可用
print(“可用”)
l2.click() # 点击登录按钮
try: # 判断是否登录成功, 登录成功后会有 "通讯录" 这个标签
c = driver.find_....() # 尝试定位通讯录这个标签
except: # 定位不到打印失败
print(“登录失败”)
else: # 没有异常(定位到) 打印成功
print(“登录成功”)
else:
print("不可用") # 上面的l2登录按钮不可用打印不可用
练习
启动 微信,登录用户名和密码,并点击登录
进入 “我” ,点击用户名,
点击二维码名片,
截图并保存到d:\\screenshot\\VCODE.png
导入截图到手机/sdcard/images/这个路径下
返回到微信聊天列表页,并将音量放大两个分贝
点击菜单回到手机主屏
退出
获取屏幕宽度
练习
封装四个方法,
向下滑动,
向上滑动,
向左滑动,
向右滑动,
练习2
打开手机设置
滑动查找页面上含有“关于“文字的 元素
如果找到了点击,如果没找到继续找,
进入关于页面,查看手机的版本信息
退出设置页面
autoLaunch=False
driver.is_app_installed()
driver.install_app()
driver.remove_app()
driver.launch_app()
driver.start_activity()
driver.current_activity()
driver.background_app(3)
driver.close_app()
driver.network_connection
查找已安装app(无apk包)Package/MainActiviy方法
adb shell
logcat | grep cmp=
然后在设备上操作一次app
练习
1.连接appium server,不启动任何app ,(autoLaunch =False)
2.启动微信的首页activity( launch_app() )
3.打开通知栏,然后关闭通知栏(要先打开一个activity) driver.press_keyevent(“4”)
4.用start_activity()启动本地浏览器,判断当前相机activity是否正确(
获取current_activity 对比当前的activity print driver.current_activity - .Camera)
5. 截屏screenshot.png 并保存到 d:\tmp\目录下
6.把当前app放在后台运行5秒钟 driver.backGround_app—进入 入到app首页
7.查看当前的网络状态,并且输出
8. 判断微信app是否已安装,已安装卸载,未安装执行安装 driver.is_app_install(“com.sankuai.meituan”)
Driver.remove_app(“包名”)
Driver.install_app(“路径/.apk”)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章