首页 > 其他分享 >Appium自动化(10):Appium常用操作之设备操作

Appium自动化(10):Appium常用操作之设备操作

时间:2023-05-27 14:32:37浏览次数:37  
标签:10 Appium self driver 锁屏 sleep time print 操作

设备基本操作

前置条件:

示例代码:

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())

 

标签:10,Appium,self,driver,锁屏,sleep,time,print,操作
From: https://blog.51cto.com/YouJeffrey/6362182

相关文章

  • win10安装配置mmdetection教程
    一、安装Anaconda并创建虚拟环境1、官网下载Anaconda安装包安装即可2、创建新的虚拟环境condacreate-nopenmmlabpython=3.8condaactivateopenmmlab二、配置Pytorch环境1、查看并确定自己电脑的CUDA版本打开nvidia设置面板,点击【帮助】-【系统信息】选择【组件】在......
  • 为什么"5".compareTo("10")>0
    在Java中,字符串的compareTo()方法是用于比较两个字符串的大小关系的,它返回一个整数值,表示两个字符串的大小关系。对于字符串"5"和"10",compareTo()方法会先比较它们的第一个字符,即"5"和"1",因为"5"的ASCII码值比"1"大,所以"5"大于"1",compareTo()方......
  • LabVIEW|小技巧:同址操作节省内存空间
      在LabVIEW中,有时候对于同一个数组、同一个簇或者其他数据容器的数据操作,如下图的搜索后再进行替换,这个时候LabVIEW会生成一个原数组的副本数组给替换函数使用,这就造成内存的浪费;解决方法是:使用右边的同址操作结构,即对于同一地址数组的不同操作,这样不会产生容器副本,节省了空间......
  • 服务器和电脑主机的区别 103.219.38.x
       我们都知道服务器和台式主机有着不同之处,但具体说出个一二三来很多人还是一头雾水,也就是知其然不知其所以然,都是CPU主板 内存 硬盘 电源,撑死就差一个显卡不同,但其实服务器和我们正常使用的台式主机差距很大,即使是内存都有着许多不同,因为用处不一样所以设计也不一样,下面......
  • 3. 王道OS-操作系统的运行机制,中断和异常
    1.高级语言-编译-机器指令(二进制) 2.内核态和用户态;刚开机的时候CPU是内核态,当用户启动某个程序的时候CPU是用户态,如果遇到危险,操作系统会夺回CPU的控制权成为内核态,当危险接触,CPU回到用户态; 3.CPU会运行两种程序,一个是操作系统的内核程序,一种是应用程序;中断是让操......
  • 2. 王道OS-操作系统的特征,发展和分类
    1.并发:宏观上是同时发生的,微观是交替发生的;ps:并行:宏观和微观都是同时发生的;ps:单核CPU同一时刻只能执行一个程序,各个程序只能并发的执行;多核CPU同一时刻可以同时执行多个程序,多个程序可以并行执行;2.共享:指系统中的资源可以提供内存中多个并发执行[微观交替使......
  • 1. 王道OS-操作系统的概念、功能
    1.操作系统是指控制和管理整个计算机的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;他是计算机系统最基本的系统软件; 操作系统需要向其他软件提供服务;是所有软件(系统资源)的manager; 提供的功能:1.处理机管理......
  • WIN10 由于找不到mfc140u.dll,无法继续执行代码
    最近遇到win10提示mfc140u.dll找不到,总是弹窗的问题.网上一番百度搜索后发现给的方法都不能很好的解决,DLL修复工具需登录且收费去下载mfc140u.dll根本不可能找到,都是垃圾病毒,危险⚠️经过google搜索后找到比较科学的方法:`thefileMFC140.DLLispartdtheVisualC++Redistr......
  • 操作系统(3.4.2)--实时调度算法的分类
    按调度方式分类:非抢占式调度算法、抢占式调度算法1.非抢占式调度算法1)非抢占式轮转调度算法调度程序每次选择队列中的第一个任务投入运行。当时间片结束后,便把它挂在轮转队列的末尾,等待下次调度运行,而调度程序再选择下一个(队首)任务运行。这种调度算法可获得数秒至数十秒的响应时......
  • 玩转时间操作(附面试题)
    在JDK8之前,Java语言为我们提供了两个类用于操作时间,它们分别是:java.util.Date和java.util.Calendar,但在JDK8的时候为了解决旧时间操作类的一些缺陷,提供了几个新的类,用于操作时间和日期,它们分别是:LocalTime、LocalDateTime、Instant,都位于java.time包下。时间的操作在我......