手机操作API
针对手机的一些常用设置功能进行操作.
前置代码
from appium import webdriver # server 启动参数 desired_caps = {} # 设备信息 desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' desired_caps['deviceName'] = '192.168.56.101:5555' # app的信息 desired_caps['appPackage'] = 'com.android.settings' desired_caps['appActivity'] = '.Settings' # 声明我们的driver对象 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
获取手机时间
方法:device_time
代码实现: # 获取当前手机的时间 print(driver.device_time) 执行结果: Wed Dec 27 08:52:45 EST 2017
获取手机的宽高
获取手机的宽高,可以根据宽高做一些坐标的操作
方法:get_window_size()
代码实现: print(driver.get_window_size()) 执行结果: {'height': 800, 'width': 480}
发送键到设备
模拟系统键值的操作,比如操作honme键,音量键,返回键等。
方法:keyevent(keycode, metastate=None):
参数:
keycode:发送给设备的关键代码
metastate:关于被发送的关键代码的元信息,一般为默认值
业务场景: 1.打开设置 2.按多次音量增加键
代码实现: for i in range(3): driver.keyevent(24)
操作手机通知栏
打开手机的通知栏,可以获取通知栏的相关信息和元素操作
方法:open_notifications()
业务场景: 1.启动设置 2.打开通知栏
代码实现:
driver.open_notifications()
获取手机当前网络
获取手机当前连接的网络
方法:network_connection
业务场景:
获取手机当前网络模式
代码实现: print(driver.network_connection) 执行结果: 6
设置手机网络
更改手机的网络模式,模拟特殊网络情况下的测试用例
方法:set_network_connection(connectionType)
参数:
connectionType:需要被设置成为的网络类型
业务场景: 1.启动设置 2.设置手机网络为飞行模式
代码实现:
driver.set_network_connection(1)
手机截图
截取手机当前屏幕,保存指定格式图片到设定位置
方法:get_screenshot_as_file(filename)
参数:
filename:指定路径下,指定格式的图片.
业务场景: 1.打开设置页面 2.截图当前页面保存到当前目录,命名为screen.png
代码实现: import os driver.get_screenshot_as_file(os.getcwd() + os.sep + './screen.png') 执行结果: 当前目录下会生成screen.png文件