Android自动化测试(UiAutomator)——UiObject

news2024/12/26 23:39:49

本文主要讲解使用UiAutomator的一些技巧,希望对于初学者有一定的帮助

UiObject

1、首先要声明对象

UiObject XXX = new UiObject(new Selector) ;

2、其次对对象进行操作

操作类型包括:

执行类:文本输入与清除、点击/长按、拖动/滑动、

属性类:文本内容、获取子类、是否存在、是否可用

点击

click ():点击对象

clickAndWaitForNewWindow (long timeout):点击对象,等待新窗口出现,参数为等待超时时长,

clickAndWaitForNewWindow ():点击对象,等待新窗口出现

clickBottomRight ():点击对象的右下角

clickTopLeft ():点击对象的左上角

长按

longClick ():长按对象

longClickBottomRight ():长按对象右下角

longClickTopLeft ():长按对象左上角

拖拽

dragTo (UiObject destObj, int steps):拖拽对象到另一个对象位置上面,可以设置拖动的速度,默认40 steps

dragTo (int destX, int destY, int steps):拖拽对象到某个坐标位置,步长可以设置,默认40 steps

滑动

swipeDown (int steps):拖动对象向下滑动,步长可以设置

swipeLeft (int steps):拖动对象向左滑动,步长可以设置

swipeRight (int steps):拖动对象向右滑动,步长可以设置

swipeUp (int steps):拖动对象向上滑动,步长可以设置

输入/清楚文本

setText (String text):设置文本框对象的文本内容

clearTextField ():清除文本框对象的文本内容

获取对象属性

getBounds ():获取对象的矩形坐标,即矩形左上角和右下角坐标

getChild (UiSelector selector):获取对象的子对象,可以根据子对象的特殊属性来获取

getChildCount ():获取下一级子类的数量

getClassName ():获取对象的类名

getContentDescription ():获取对象的文本描述

getFromParent (UiSelector selector):从父类获取子类,根据子类的特殊属性来获取

getPackageName ():获取对象的包名

UiSelector getSelector ():获取selector,用于调试,实用性不大

getText ():获取对象的文本信息

getVisibleBounds ():返回可见视图的范围

属性判断

isCheckable ():检查对象的Check属性是否为true,判断当前对象是否可以打钩

isChecked ():检查对象的Checked属性是否为true,判断当前对象是否已经打钩

isClickable ():检查对象的Click属性是否为true,判断当前对象是否可以点击

isEnabled ():检查对象的Enable属性是否为true,判断当前对象是否可用

isFocusable ():检查对象的Focusable属性是否为true,判断当前对象是都可以获取焦点

isFocused ():检查对象的Focus属性是否为true,判断当前对象是否已经获取焦点

isLongClickable ():检查对象的LongClick属性是否为true,判断当前对象是都可以长按

isScrollable ():检查对象的LongClick属性是否为true,判断当前对象是都可以滑动

isSelected ():检查对象的Selected属性是否为true,判断当前对象是都已经选中

手势操作

performMultiPointerGesture (PointerCoords… touches):执行单手指触控手势,可定义任何手势和形状

performTwoPointerGesture (Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps):执行任意两个手指触控,模拟两个手指手势

pinchIn (int percent, int steps):手指操作,两点向内收缩

pinchOut (int percent, int steps):手指操作,两点向外扩展

对象是否存在

waitForExists (long timeout):等待对象出现, 可设置时长

waitUntilGone (long timeout):等待对象消失, 可设置时长

exists ():判断对象是否存在

最后:下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/358089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA JDK 常用工具类和工具方法

目录 Pair与Triple Lists.partition-将一个大集合分成若干 List集合操作的轮子 对象工具Objects 与ObjectUtils 字符串工具 MapUtils Assert断言 switch语句 三目表达式 IOUtils MultiValueMap MultiMap JAVA各个时间类型的转换(LocalDate与Date类型&a…

开源软件AirByte:入湖入仓,数据集成管道

从ETL到ELT就传统的 ETL而言,当我们开始构建数据仓库时,都要先去了解业务流程,明晰业务是如何运转的,数据是如何留痕的。通过收集用户的相关需求,从而去规划设计报表。企业需要进行数仓分域、分层、逻辑建模等一系列操…

Linux下程序调试的方法【GDB】GDB相关命令和基础操作(命令收藏)

目录 1、编译 2、启动gdb调试 2.1 直接运行 2.2 运行gdb后使用run命令 2.3 调试已运行的程序 3、图形界面提示 4、调试命令 1、查看源码 2、运⾏程序/查看运⾏信息 3、设置断点 5、单步/跳步执⾏ 6、分割窗口 7、其他命令 8、相关参数 1、编译 在编译时要加上-g选…

stm32f407探索者开发板(十七)——串口寄存器库函数配置方法

文章目录一、STM32串口常用寄存器和库函数1.1 常用的串口寄存器1.2 串口相关的库函数1.3 状态寄存器(USART_ SR)1.4 数据寄存器(USART_ DR)1.5 波特率寄存器(USART_BRR)二、串口配置一般步骤一、STM32串口常…

java static关键字 万字详解

目录 一、为什么需要static关键字: 二、static关键字概述 : 1.作用 : 2.使用 : 三、static修饰成员变量详解 : 1.特点 : 2.细节 : ①什么时候考虑使用static关键字? ②静态变量和非静态变量的区别? ③关于静态变量的初始化问题 : ④关于静态变…

基于springboot+vue的器官捐献系统

基于springbootvue的器官捐献系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍&…

内网渗透(四十一)之横向移动篇-PsExec工具远程命令执行横向移动

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

CCNP350-401学习笔记(201-250题)

201、An engineer attempts to configure a trunk between switch SW1 and switch SW2 using DTP, but the trunk does not form. Which command should the engineer apply to switch SW2 to resolve this issue? A. switchport mode dynamic desirable B. switchport mode a…

GNU make 中文手册 第一二章 概述与介绍

一、第一章:概述 准备知识 在开始我们关于 make 的讨论之前,首先需要明确一些基本概念: 编译:把高级语言书写的代码,转换为机器可识别的机器指令。编译高级语言后生成的指令虽然可被机器识别,但是还不能…

小程序 npm sill idealTree buildDeps 安装一直没反应

目录 一、问题 二、解决 1、删除.npmsrc 、清除缓存 2、更换镜像源 3、最终检测 一、问题 记录:今天npm 一直安装不成功 显示:sill idealTree buildDeps 我的版本: 我百度到换镜像源安装方法,但我尝试后,依然…

CUDA性能指南

CUDA性能指南 文章目录CUDA性能指南5.1 整体性能优化策略5.2 最大化利用率5.2.1 应用程序层次5.2.2 设备层次5.2.3 多处理器层次5.2.3.1 占用率计算5.3 最大化存储吞吐量5.3.1 设备与主机之间的数据传输5.3.2 设备内存访问5.4最大化指令吞吐量5.4.1 算数指令5.4.2 控制流指令5.…

前端 ES6 环境下 require 动态引入图片以及问题

前端 ES6 环境下 require 动态引入图片以及问题require 引入图片方式打包体积对比总结ES6 环境中,通过 require 的方式引入图片很方便,一直以来也没有出过什么问题,后来项目中,需要动态引入图片。 require 动态引入也容易实现&am…

第一章 Kafka快速实战与基本原理

第一章 Kafka快速实战与基本原理 1、介绍 Kafka 是最初由 Linkedin 公司开发的,是一个分布式、支持分区的(partition)、多副本的(replica),基于 zookeeper 协调的分布式消息系统,它最大的特性就…

分布式(四)

五、分布式锁 1. 概念 1.1 本地锁 使用ReetrantLock类和synchronized关键字JDK自带的本地锁来控制一个JVM进程内的多个线程对本地共享资源的访问。 1.2 分布式锁 分布式系统下,不同的服务器/客户端通常运行在独立的JVM进程上。 多个JVM进程共享一份资源的话&…

leetcode 1~10 学习经历

LeetCode 习题 1 - 101. 两数之和2. 两数相加3. 无重复字符的最长子串4. 寻找两个正序数组的中位数5. 最长回文子串6. N 字形变换7. 整数反转8. 字符串转换整数 (atoi)9. 回文数10. 正则表达式匹配1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在…

大数据处理学习笔记1.5 掌握Scala内建控制结构

文章目录零、本讲学习目标一、条件表达式(一)语法格式(二)执行情况(三)案例演示任务1、根据输入值的不同进行判断任务2、编写Scala程序,判断奇偶性二、块表达式(一)语法格…

科学推理~

科学推理 【物理】 1、力学 重力 重力并不是指向地心的,只有赤道可以 弹力 【重点】判断弹力方向 相互作用力 摩擦力 静摩擦力 滑动摩擦力 注意:最大静摩擦力默认等于滑动摩擦力 压强 固体压强 液体压强 连通器 气体压强 气体对外做功,T 下…

1 月份 NFT 行业报告

Jan.2023, DanielData Source: NFT Monthly Report1 月是近一年来代币价格最好的一个月,ETH、BTC 和 altcoins 的涨幅是 7 月以来最猛的。自然,这导致了 NFT 行业的交易量和市值增加。一些指标是可以预测的,比如已完成的投资轮数继…

BI知识全解,值得收藏

2021年度,中国商业软件市场的增长趋势是快速增长的,达到7.8亿美元,同比增长34.9%。商业智能BI在企业应用中具有巨大的价值,并逐渐成为现代企业信息化和数字化转型的基础。所以,全面了解BI,对于企业管理是非…

100天精通Python(数据分析篇)——第76天:Pandas数据类型转换函数pd.to_numeric(参数说明+实战案例)

文章目录专栏导读一、to_numeric参数说明0. 介绍1. arg1)接收列表2)接收一维数组3)接收Series对象2. errors1)errorscoerce2)errors ignore3. downcast1)downcastinteger2)downcastsigned3&…