移动端测试——手机常见操作的API (5)

本文详细介绍了Appium中用于操作手机的各种API,包括获取手机时间、宽高、发送键到设备、操作通知栏、获取和设置网络状态,以及手机截图等功能。通过实例展示了如何使用这些API来实现自动化测试中的常见需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

appium基础API

1.1 常用的手机操作API

针对手机的一些常用设置功能进行操作

  • 前置代码
# 导入driver对象
from appium import webdriver

import time

# server 启动参数
desired_caps = {}
# 设备信息(系统、版本、设备号)
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '9'
desired_caps['deviceName'] = '192.168.72.103:5555'
# app信息(包名、启动名)
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'

# 声明driver对象
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

try:
    pass
except Exception as e:
    print(e)
finally:
    # 关闭驱动对象
    driver.quit()

1.1.1 获取手机时间

方法:device_time

# 获取当前手机的时间
print(driver.device_time)

1240

1.1.2 获取手机的宽高

获取手机的宽高,可以根据宽高做一些坐标的操作
方法:get_window_size()

print(driver.get_window_size())

1240

eg:

phone_size = driver.get_window_size()
x = phone_size.get("width")/2
y_0 = 2*phone_size.get("height")/3
y_1 = phone_size.get("height")/3
driver.swipe(x, y_0, x, y_1,3000)

1.1.3 发送键到设备

模拟系统键值的操作,比如操作honme键,音量键,返回键等。
方法:keyevent(keycode, metastate=None)
参数|说明
-|-
keycode|发送给设备的关键代码
metastate|关于被发送的关键代码的元信息,一般为默认值

eg(业务场景):

打开设置,按多次音量增加键

for i in range(3):
    driver.keyevent(24)
  • 常用键
元信息名称关键代码
KEYCODE_HOME按键Home3
KEYCODE_BACK返回键4
KEYCODE_CALL拨号键5
KEYCODE_ENDCALL挂机键6
KEYCODE_DPAD_UP导航键 向上19
KEYCODE_DPAD_DOWN导航键 向下20
KEYCODE_DPAD_LEFT导航键 向左21
KEYCODE_DPAD_RIGHT导航键 向右22
KEYCODE_DPAD_CENTER导航键 确定键23
KEYCODE_VOLUME_UP音量 增加键24
KEYCODE_VOLUME_DOWN音量 减小键25
KEYCODE_POWER电源键26
KEYCODE_CAMERA拍照键27
KEYCODE_TABTab键61
KEYCODE_ENTER回车键66
KEYCODE_DEL退格键67
KEYCODE_FOCUS拍照对焦键80
KEYCODE_MENU菜单键82
KEYCODE_NOTIFICATION通知键83
KEYCODE_SEARCH搜索键84
KEYCODE_MUTE话筒静音键91
KEYCODE_PAGE_UP向上翻页键92
KEYCODE_PAGE_DOWN向下翻页键93
KEYCODE_ESCAPEESC键111
KEYCODE_FORWARD_DEL删除键112
KEYCODE_CAPS_LOCK大写锁定键115
KEYCODE_SCROLL_LOCK滚动锁定键116
KEYCODE_BREAKBreak/Pause键121
KEYCODE_MOVE_HOME光标移动到开始键122
KEYCODE_MOVE_END光标移动到末尾键123
KEYCODE_INSERT插入键124
KEYCODE_NUM_LOCK小键盘锁143
KEYCODE_VOLUME_MUTE扬声器静音键164
KEYCODE_ZOOM_IN放大键168
KEYCODE_ZOOM_OUT缩小键169
KEYCODE_ALT_LEFTAlt+Left
KEYCODE_ALT_RIGHTAlt+Right
KEYCODE_CTRL_LEFTControl+Left
KEYCODE_CTRL_RIGHTControl+Right
KEYCODE_SHIFT_LEFTShift+Left
KEYCODE_SHIFT_RIGHTShift+Right

参阅:

1.1.4 操作手机通知栏

打开手机的通知栏,可以获取通知栏的相关信息和元素操作
方法:open_notifications()

eg(业务场景):

启动设置,打开通知栏,2秒后,返回主页

driver.open_notifications()
time.sleep(2)
driver.keyevent(3)

eg:

1.1.5 获取手机当前网络

获取手机当前连接的网络
方法:network_connection

1240

eg(业务场景):

获取手机当前网络模式

print(driver.network_connection)

1.1.6 设置手机网络

更改手机的网络模式,模拟特殊网络情况下的测试用例
方法:set_network_connection(connectionType)

参数说明
connectionType需要被设置成为的网络类型

eg(业务场景):

启动设置,设置手机网络为飞行模式

driver.set_network_connection(1)

1.3.8 手机截图

截取手机当前屏幕,保存指定格式图片到设定位置
方法:get_screenshot_as_file(filename)
参数|说明
-|-
filename|指定路径下,指定格式的图片.

eg(业务场景):

打开设置页面,截图当前页面保存到当前目录,命名为screen.png

import os
driver.get_screenshot_as_file(os.getcwd() + os.sep + './screen.png')

执行结果:
当前目录下会生成screen.png文件
---

更新中......


转载于:https://www.cnblogs.com/ricsy/p/11581689.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值