UiAutomator2—By、BySelector

By和BySelector所实现的功能相同,API也基本上相同,By是对BySelector的简化,官网是这样解释的:

By is a utility class which enables the creation of BySelectors in a concise manner.

Its primary function is to provide static factory methods for constructing BySelectors using a shortened syntax. For example, you would use findObject(By.text(“foo”)) rather than findObject(new BySelector().text(“foo”)) to select UI elements with the text value “foo”.

大意为:By是BySelector的一个实用类,By的主要功能是提供静态方法并使用简单的语法去构建BySelector进而进行控件的筛选。例如:
当你寻找一个text为foo的控件时,BySelector的写法为:

findObject(new BySelector().text(“foo”))

而By则可以对之进行简化,可以写为:

findObject(By.text("foo"))
  • UiAutomator2ByBySelector

    • API
    • Example

API

Return type function and description
static BySelector checkable(boolean isCheckable)/checked(boolean isChecked)br> 控件是否可被勾选/以被勾选
static BySelector clazz(String packageName, String className)   控件的类名
clazz(Class clazz)
clazz(Pattern className)
clazz(String className)
static BySelector clickable(boolean isClickable)/longClickable(boolean isLongClickable)
控件是否可以被点击/长按
static BySelector copy(BySelector original)
static BySelector depth(int depth)    设置布局文件的层级筛
static BySelector desc(String contentDescription)  控件的描述信息
desc(Pattern contentDescription)
descContains(String substring)
descEndsWith(String substring)
descStartsWith(String substring)
static BySelector enabled(boolean isEnabled)  控件是否可用
static BySelector focusable(boolean isFocusable)/focused(boolean isFocused)
控件是否可被/已被聚焦
static BySelector hasChild(BySelector childSelector)  控件是否有符合条件的子控件
static BySelector hasDescendant(BySelector descendantSelector)
hasDescendant(BySelector descendantSelector, int maxDepth)
是否含有符合条件的后代
static BySelector pkg(Pattern applicationPackage)/pkg(String applicationPackage)
控件包名
static BySelector res(String resourcePackage, String resourceId)    控件的资源名
res(String resourceName)
res(Pattern resourceName)
static BySelector scrollable(boolean isScrollable)  控件是否可以被点击
static BySelector text(Pattern regex)  控件的文字内容
text(String text)
textContains(String substring)
textEndsWith(String substring)
textStartsWith(String substring)

Example

    //获取UiDevice实例UiDevice mDevice=UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());//以id筛选控件mDevice.findObject(By.res("com.star.uiautomator:id/add")).click();//以控件描述description筛选控件UiObject2 resBtn = mDevice.findObject(By.res("calculator the result"));//多个条件组合筛选控件UiObject2 button = mDevice.findObject(By.desc("calculator the result").clazz(Button.class).res("com.star.uiautomator:id/calculator").pkg("com.star.uiautomator").scrollable(false).selected(false));  

UiAutomator2—By、BySelector相关推荐

  1. APP自动化测试框架搭建(六)--uiautomator2、web-editor基础操作

    第一章 APP自动化环境搭建(Mac版) 第二章 APP自动化环境搭建(Windows版) 第三章 adb命令 第四章 元素定位.元素操作 第五章 APP自动化测试框架搭建 Python+Appium ...

  2. Uiautomator2 GitHub文档转载

    Requirements Android版本 4.4+ Python 3.6+ (社区反馈3.8.0不支持, 但是3.8.2支持) 如果用python2的pip安装,会安装本库的老版本0.2.3:如果 ...

  3. uiautomator2 库中文手册

    uiautomator2 库中文手册 一.安装 1.安装uiautomator2: 2.安装设备守护进程: 3.安装weditor 二.使用指南 1. 连接设备 2. 命令行使用 三.API手册 1. ...

  4. 基于python+uiautomator2,2020.12月最新库的使用方法,更新watcher使用方法

    uiautomator2 此库基于2020.12更新版本 这里有一份快速参考,适合已经入门的人 import uiautomator2 as u2d = u2.connect("--seri ...

  5. Appium移动端自动化测试(二):uiautomator2.0使用

    uiautomator2.0 其中appium1.5版本及以上.Android 5.0版本以上才支持 环境准备: 1. npm安装 npm install appium(安装后的版本一般都是最新的) ...

  6. 利用uiautomator2刷金币

    花了一个晚上的时间,大概能够实现这个功能,主要时间花费了安装配置环境上, 下面记录整个过程, 参考链接: 1.30行代码实现蚂蚁森林自动偷能量 2.windows下载安装adb(极其简单) 3.adb ...

  7. 十分钟弄懂最快的APP自动化工具uiautomator2

    相信很多使用appium做过APP自动化的人都深有感触: appium运行慢.时间长 uiautomatorviewer定位元素时得关掉appium server 在低版本的appium上获取toas ...

  8. 干货|一文搞定 uiautomator2 自动化测试工具使用

    一.背景简介 Google 官方提供了一个 Android 自动化测试工具(Java 库),基于 Accessibility 服务,功能很强,可以对第三方 App 进行测试,获取屏幕上任意一个 App ...

  9. UIAutomator2的使用教程

    文章目录 一.简介 二.支持平台及语言 三.工作原理 四.安装 4.1 环境要求 4.2 安装adb 4.3 安装uiautomator2 4.4 设备安装atx-agent 4.5 安装wedito ...

  10. python+uiautomator2 UI自动化

    python+uiautomator2 UI自动化 uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库. 其底层基于Google uiautomator,Goo ...

最新文章

  1. Add Binary - LeetCode
  2. 关于STM32串口空闲中断的问题
  3. java logger 静态,java11教程--公共静态接口System.Logger
  4. cacheAsBitmap = ‘true' 可以降低cpu,提高效率?
  5. 短视频的运营团队分为三种
  6. oracle中结果集合并
  7. 朝鲜 APT37被指发动软件供应链攻击,瞄准股票投资人
  8. HCIE-RS面试--STP选举原理,状态机和接口角色
  9. 从Qt Console Application到Qt GUI Application
  10. Latex在线简历制作
  11. webscraper改写案例分析
  12. 2020 第十一届蓝桥杯大赛软件类省赛第二场 C/C++ 大学 B 组 完整题面和题解
  13. python爬虫,从hao123爬取网址信息
  14. css--盒子的尺寸
  15. (转)快商通与商务通将客人网页内文本框输入的内容传到客服端对话界面显示...
  16. 最近老是卖了就涨 买了就跌呢
  17. SAP那些事-理论篇-17-SAP项目如何整理数据
  18. 编写程序,解决鸡兔同笼问题:一个笼子里关着鸡和兔子。问笼中各有多少只鸡和兔?
  19. 手机四巨头,卷进元宇宙
  20. 论文学习笔记《SWA Object Detection》

热门文章

  1. QT 基于Libvlc的视频播放器
  2. [原创]我的网名卖烧烤的鱼缘由^_^
  3. 基于MATLAB/Simulink的电力电子电路仿真技术——直流降压(Buck)变换器及Powergui的使用
  4. 为工业机器人的学生分享一款ABB公司的机器人仿真软件
  5. IOS 开发 Cache文件夹缓存的清理封装(包括WebKit缓存/SDImageCache缓存),都提供了相应的接口.
  6. 金蝶EAS,序时簿ListUI只允许选择一行或至少选择一行记录
  7. EAS BOS序时簿界面排序
  8. 【渝粤题库】广东开放大学 JavaScript 形成性考核
  9. 天刀 服务器状态,12月11日服务器例行维护公告(已完成)
  10. 10个办法带你提高工作效率