UI Automator测试框架提供了一组API来构建UI测试。

利用UI Automator API可以执行在测试设备中,打开‘设置’菜单或应用启动器等操作。

UI Automator测试框架非常适合编写黑盒自动化测试

【注意】如果你的安卓机版本在6及以上,可以在desired_caps字典中加上下面这句代码:

'automatorName': 'UiAutomator2'

UI Automator查看器

  访问设备状态:

UI Automator测试框架提供了一个UiDevice类。该类可用于执行以下操作:

- 更改设备旋转

- 按D-pad按钮

- 按返回、主屏幕、菜单按钮

- 打开通知栏

- 对当前窗口进行屏幕截图

如:要模拟按下‘主屏幕’按钮,请调用UiDevice.pressHome()方法

UI Automer API:

UiSelector:是我们appium自动化代码选择元素时直接使用到的。

UiSelector类似于appium中find_element_by_xxx()方法中的函数值。

如:根据ID选择元素

java语法:newSelector().resourceId("io.manong.developerdaily:id/tv_tab_title")

appium用法:driver.find_element_by_android_uiautomator('new UiSelector().resourceId("io.manong.developerdaily:id/tv_tab_title")')

如:根据className选择元素

java语法:new UiSelector().className("android.widget.TextView")

appium 用法:driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView")')

如:根据class name 和text属性

code = 'new UiSelector().text("我的").classname("android.widget.TextView")'

ele = driver.find_element_by_android_uiautomator(code)

如:根据childSelector和instance方法

code = 'new UiSelector().resourceId('\

' "io.manong.developerdaily:id/tab_bar").childSelector(new UiSelectot().className('\

' "android.widget.TextView").instance(3))'

ele = driver.find_element_by_andorid_uiautomator(code)

ele.click()

-------------------------代码实现-------------------------------

滑动屏幕:

*  Appium WebDriver的swipe方法(坐标和duration)

* 直接查看,估算操作坐标

* 先获取元素坐标,再分析操作坐标(更健壮)

location = ele.location   左上角坐标   (dict:有x,y)

size1 = ele.size  宽  高  (dict:有width,height)

操作不可见元素:

* 先滑动到其可见

* 再操作该元素

* 获取全屏幕尺寸

screenSize = driver.get_window_size()

screenW = screenSize['width']

screenH = screenSize['height']

---------------------------代码实现------------------------------

Appium之UIAutomator API选择元素的更多相关文章

  1. jQuery选择器对应的DOM API ——选择元素

    英文原文:http://blog.garstasio.com/you-dont-need-jquery/selectors/愚人码头注: 原作者的写这文章的意图是让我们抛弃jQuery,You Don ...

  2. 抛弃jQuery:DOM API之选择元素

    原文链接:http://blog.garstasio.com/you-dont-need-jquery/selectors/ 我的Blog:http://cabbit.me/you-dont-need ...

  3. Appium脚本(4) 使用uiautomator方法定位元素

    from app.find_element.capability import driver from time import sleep # 使用uiautomator方法定位元素 accunt_i ...

  4. 【转】Uiautomator Api浅析

    原文地址:http://blog.sina.com.cn/s/blog_ae2575ff01018b2o.html uiautomator api: http://android.toolib.net ...

  5. JQuery基础教程:选择元素(上)

    jQuery最强大的特性之一就是它能够简化在DOM中选择元素的任务,DOM中的对象网络与家谱有几分类似,当我们提到网络中元素之间的关系时,会使用类似描述家庭关系的术语,比如父元素.子元素,等等.通过一 ...

  6. 第三章:JavaScript选择元素

    我们使用jQuery时,很常用的套路是“两步”第一步:选取元素第二步:对选中的元素执行需要的操作这一章我们重点研究第一步,如何使用jQuery选取元素以及对选取的结果进行“各种筛选”以满足我们的需求. ...

  7. Jquery 系列(2) 选择元素

    Jquery基础学习 jQuery利用css选择符的能力,能够在DOM中快捷而轻松地获取元素. 主要内容如下: 介绍DOM树 如何通过CSS选择符在页中查找元素 扩展jQuery标准的CSS选择符 选 ...

  8. 【 D3.js 入门系列 --- 2 】 如何使用数据和选择元素

    接着上一讲的内容,这次讨论如何选择元素和使用数据.    现在页面中有三行文字,代码为: <p>Hello World 1</p> <p>Hello World 2 ...

  9. D3.js 其他选择元素方法

    在上一节中,已经讲解了 select 和 selectAll,以及选择集的概念.本节具体讲解这两个函数的用法. 假设在 body 中有三个段落元素: <p>Apple</p> ...

随机推荐

  1. JavaScript with Image:创建缩略图

    当图片很大,直接把图片从Server下载到浏览器上看是一种很不明智的做法,浪费了服务器的资源,网络带宽和客户端的资源.所以,通常Server和Client之间会传输缩略图,只有当Client请求某张图 ...

  2. C++中对封装的语法支持——重载运算符

    重载运算符 1.对于自定义类型,编译器不知道运算规则,而重载运算符会将两个对象相加转换为函数调用. 2.运算符重载转换的函数调用,函数名字是固定的规则. (1) 如果重载+号运算符,函数名字就是:op ...

  3. [LC]206题 Reverse Linked List (反转链表)(链表)

    ①英文题目 Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5-> ...

  4. 别翻了,这篇文章就是要让你入门java多线程!

    目录 1. 理解线程与进程 2.理解并行和并发 3.特殊的一个单线程:主线程(Main线程) 4. 创建多线程的四种方式 5.使用匿名内部类方式创建线程 6.线程安全问题 7.解决线程安全问题:线程同 ...

  5. PHP 发送get请求

    PHP 发送get请求 file_get_contents 方法: $s = file_get_contents("http://apis.map.qq.com/ws/distance/v1 ...

  6. nyoj 1112 求次数 (map)

    求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strl ...

  7. 力扣(LeetCode)计数质数 个人题解

    统计所有小于非负整数 n 的质数的数量. 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . 一般方法,也就是一般人都会用的,将数从2到它本 ...

  8. python:collections模块

    Counter类 介绍:A counter tool is provided to support convenient and rapid tallies 构造:class collections. ...

  9. node中mysql和短信使用方法(3)

    一.mysql的使用 使用mysql首先得有数据库并且表里面有数据,我创建了数据库newsql,里面Tables有表company等等. company有id,name,other等字段 1.导入my ...

  10. 树莓派SSH篇

    开启好树莓派后发现一个问题,怎么才可以输入进树莓派里面呢? 一.你需要和我一样准备一个无线(有线)键盘