7、发送键到设备(掌握)
模拟系统键值的操作,⽐如操作home键,⾳量键,返回键等。
使用方法:keyevent(keycode, metastate=None):
# 调用方式
driver.keyevent(keycode)
参数:
keycode:发送给设备的关键代码
metastate:关于被发送的关键代码的元信息,⼀般为默认值
说明:Android 常用keycode键列表
键名 | 描述 | 键值 |
---|---|---|
KEYCODE_CALL | 拨号键 | 5 |
KEYCODE_ENDCALL | 挂机键 | 6 |
KEYCODE_HOME | 按键Home | 3 |
KEYCODE_MENU | 菜单键 | 82 |
KEYCODE_BACK | 返回键 | 4 |
KEYCODE_SEARCH | 搜索键 | 84 |
KEYCODE_CAMERA | 拍照键 | 27 |
KEYCODE_FOCUS | 拍照对焦键 | 80 |
KEYCODE_POWER | 电源键 | 26 |
KEYCODE_NOTIFICATION | 通知键 | 83 |
KEYCODE_MUTE | 话筒静音键 | 91 |
KEYCODE_VOLUME_MUTE | 扬声器静音键 | 164 |
KEYCODE_VOLUME_UP | 音量增加键 | 24 |
KEYCODE_VOLUME_DOWN | 音量减小键 | 25 |
KEYCODE_ENTER | 回车键 | 66 |
KEYCODE_ESCAPE | ESC键 | 111 |
KEYCODE_DPAD_CENTER | 导航键_确定键 | 23 |
KEYCODE_DPAD_UP | 导航键_向上 | 19 |
KEYCODE_DPAD_DOWN | 导航键_向下 | 20 |
KEYCODE_DPAD_LEFT | 导航键_向左 | 21 |
KEYCODE_DPAD_RIGHT | 导航键_向右 | 22 |
KEYCODE_MOVE_HOME | 光标移动到开始键 | 122 |
KEYCODE_MOVE_END | 光标移动到末尾键 | 123 |
KEYCODE_PAGE_UP | 向上翻页 | 92 |
KEYCODE_PAGE_DOWN | 向下翻页 | 93 |
KEYCODE_DEL | 退格键 | 67 |
KEYCODE_FORWARD_DEL | 删除键 | 112 |
KEYCODE_INSERT | 插入建 | 124 |
KEYCODE_TAB | Tab键 | 61 |
KEYCODE_NUM_LOCK | 小键盘锁 | 143 |
KEYCODE_CAPS_LOCK | 大写锁定键 | 115 |
KEYCODE_BREAK | 暂停键 | 121 |
KEYCODE_SCROLL_LOCK | 滚动锁定键 | 116 |
KEYCODE_ZOOM_IN | 放大键 | 168 |
KEYCODE_ZOOM_OUT | 缩小键 | 169 |
业务场景:
- 打开设置
- 按多次⾳量增加键
代码实现:
"""
1.学习目标
掌握发送键到设备
2.操作步骤
发送键到设备:driver.keyevent(keycode)
例如:
音量增大 keycode = 24
音量减小 keycode = 25
3.需求
使用keyevent控制手机音量大小
"""
# 1.导入appium和TouchAction
import time
from appium import webdriver
# 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.android.settings", # APP包名
"appActivity": ".Settings" # APP启动名
}
# 3.启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
# 4.操作APP
# 4.1 发送键到设备,实现手机音量调节
# 音量增大
for i in range(4):
driver.keyevent(24)
time.sleep(1)
# 音量减小
for i in range(2):
driver.keyevent(25)
time.sleep(1)
# 5.关闭APP
time.sleep(3)
driver.quit()
8、⼿机截图(掌握)
截取⼿机当前屏幕,保存指定格式图⽚到设定位置
使用⽅法:get_screenshot_as_file(filename)
# 调用方式
driver.get_screenshot_as_file(filename)
参数:
filename:指定路径下,指定格式的图⽚。
业务场景:
- 打开设置⻚⾯
- 截图当前⻚⾯保存到当前⽬录,命名为screen.png
代码实现:
"""
1.学习目标
掌握appium中手机截图
2.操作步骤
手机截图
driver.get_screenshot_as_file(存储文件的路径+文件名)
图片格式仅支持png格式。
3.需求
实现手机截图功能
"""
# 1.导入appium和TouchAction
import time
from appium import webdriver
# 2.创建Desired capabilities对象,添加启动参数
desired_caps = {
"platformName": "Android", # 系统名称
"platformVersion": "7.1.2", # 系统版本
"deviceName": "127.0.0.1:21503", # 设备名称
"appPackage": "com.android.settings", # APP包名
"appActivity": ".Settings" # APP启动名
}
# 3.启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
# 4.操作APP
# 手机截图,截图保存当前目录(脚本文件所在的同级目录)
# driver.get_screenshot_as_file("test.jpg") # 写jpg格式日志中会有警告
driver.get_screenshot_as_file("test1.png")
# 5.关闭APP
time.sleep(3)
driver.quit()