Appium手机操作API
针对手机的一些常用设置功能进行操作.
- 1.前置代码
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)
- 2.获取手机时间
方法:device_time
代码实现: # 获取当前手机的时间 print(driver.device_time) 执行结果: Wed Dec 27 08:52:45 EST 2017
- 3.获取手机的宽高
获取手机的宽高,可以根据宽高做一些坐标的操作
方法:get_window_size()
代码实现: print(driver.get_window_size()) 执行结果: {'height': 800, 'width': 480}
- 4.发送键到设备
模拟系统键值的操作,比如操作honme键,音量键,返回键等。
方法:keyevent(keycode, metastate=None): 参数: keycode:发送给设备的关键代码 metastate:关于被发送的关键代码的元信息,一般为默认值
业务场景: 1.打开设置 2.按多次音量增加键
代码实现: for i in range(3): driver.keyevent(24)
- 5.操作手机通知栏
打开手机的通知栏,可以获取通知栏的相关信息和元素操作
方法:open_notifications()
业务场景:
1.启动设置
2.打开通知栏
代码实现:
driver.open_notifications()
- 6.获取手机当前网络
获取手机当前连接的网络
方法:network_connection
业务场景:
获取手机当前网络模式
代码实现:
print(driver.network_connection)
执行结果:
6
- 7.设置手机网络
更改手机的网络模式,模拟特殊网络情况下的测试用例
方法:set_network_connection(connectionType)
参数:
connectionType:需要被设置成为的网络类型
业务场景:
1.启动设置
2.设置手机网络为飞行模式
代码实现:
driver.set_network_connection(1)
- 8.手机截图
截取手机当前屏幕,保存指定格式图片到设定位置
方法: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文件