设备基本操作

前置条件:

示例代码:

from appium import webdriver  # 导入appium 驱动包
# 1、定义一个DesiredCapabilities配置的字典
des = {
    'automationName':'appium',
    'platformName':'Android',   # 平台的名称,iOS,Android,FirefoxOS
    'platformVersion':'6.0.1',  # 填写android虚拟机/真机的系统版本号
    'deviceName':'MuMu',      # 填写安卓虚拟机/真机的设备名称
    'appPackage':'com.sky.jisuanji',    # 填写被测app包名
    'appActivity':'.JisuanjizixieActivity',    # 填写被测app的Activity入口
    'udid':'127.0.0.1:7555',    # 填写通过命令行 adb devices 查看到的udid
    'noReset':True,               # 是否 不重置APP
    'noSign':True,                # 是否 不签名
    'unicodeKeyboard':True,       # 是否支持中文输入
    'resetKeyboard':True,         # 是否支持重置键盘
       }

# 2、把配置的字典作为请求参数发送给appium服务器
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)

1、lock(self,seconds):锁屏操作,seconds设置锁屏时长

# 锁屏操作
driver.lock(3)  # 锁屏时长3s ==> 交叉事件:如果测试一个视频直播,锁屏后再打开是否还能继续直播
time.sleep(2)
print(driver.is_locked())  # is_locked()判断是否为锁屏状态 返回布尔值

2、unlock(self):解锁操作

# 解锁操作
driver.unlock()
print(driver.is_locked())

3、is_locked(self):判断是否锁屏,锁屏状态返回True

# 锁屏操作
driver.lock(3) 
time.sleep(2)
# 判断是否锁屏 锁屏状态返回True
print(driver.is_locked())  # is_locked()判断是否为锁屏状态 返回布尔值

4、open_notifications(self):打开通知栏

#打开通知栏操作
time.sleep(2)
driver.open_notifications()

5、driver.orientation='LANDSCAPE':切换横屏操作,PORTRAIT:切换竖屏操作,也可以通过driver.orientation获取当前屏幕状态

# 切换横竖屏操作
print(driver.orientation)  # 获取当前屏幕的横竖屏状态
time.sleep(2)
driver.orientation = 'LANDSCAPE'  # 设置横屏
time.sleep(2)
driver.orientation = 'PORTRAIT'  # 设置竖屏

6、get_window_size(self,windowHandle='current'):默认获取当前屏幕的分辨率,返回字典{'width':,'height':}

# 默认获取当前屏幕的分辨率,返回字典{'width':,'height':}
print(driver.get_window_size())

7、network_connection:获取网络状态,返回整型数字

0 (No connection) 无状态
1(Airplane Mode) 飞行模式
2(Wifi only) 仅开启wifi模式
4(Data only) 仅开启数据流量模式
6(All network on) 全部开启(包括wifi 和数据流量模式)

print(driver.network_connection)  # 获取网络状态

8、set_network_connection(self,connection_type):设置网络状态,使用数字或导入ConnectionType类进行传参设置

# 设置网络状态
# 方式一:使用数字传参设置 0、1、2、4、6
driver.set_network_connection(1)
time.sleep(5)
# 方式二:导入ConnectionType类进行传参设置
from appium.webdriver.connectiontype import ConnectionType
driver.set_network_connection(ConnectionType.ALL_NETWORK_ON)

9、save_screenshot(self,filename):截屏操作,filename为保存的文件路径,图片格式设置为png格式

# 截图操作
time.sleep(2)
driver.save_screenshot('C:/Users/Jeff/Desktop/123.png')

10、get_device_time(self,format=None):获取设备当前时间,format为日期时间格式设置,默认为'YYYY-MM-DDTHH:mm:ssZ'

# 获取设备当前时间,默认格式为'YYYY-MM-DDTHH:mm:ssZ'
print(driver.get_device_time())