这个方法只能用于安卓系统,方法通过类UiSelector()来构造对象的

官网地址:https://developer.android.google.cn/topic/libraries/testing-support-library/index.html#UIAutomator

打开链接到UiSelector类https://developer.android.com/reference/android/support/test/uiautomator/UiSelector.html

定位方法:driver.find_element_by_android_uiautomator('new UiSelector().text("9")') 返回元素对象

通过元素文本进行定位:

1、根据文本定位

  text(String text)

  new UiSelector().text("9")

2、模糊匹配文本

  textContains(文本)

3、以某个文本开头来匹配

  textStartsWith(文本)

4、正则匹配

  textMatches(正则表达式)

  new UiSelector().textMatches("^D.*")

根据resourceId定位元素:

  resourceId(id)

  new UiSelector().resourceId("com.ibox.calculators:id/digit6")

根据className定位元素:

  注意:className不是唯一的,在Android页面为元素的类型

  new UiSelector().className("android.widget.Button")

根据contenet-des属性定位:

  description(contenet-des属性值)

  new UiSelector().description("cramp fast")

组合定位:

  className 和text组合定位

  new UiSelector().className("android.widget.TextView").text("上升最快")

  其他类推

根据元素关系定位:

  1、后代元素定位

    使用条件:子元素属性不定,不唯一,只能通过父元素来定位

    通过父元素来找后代元素,不一定是父子关系

    new UiSelector().resourceId("com.ibox.calculators:id/cv").childSelector(className("android.widget.TextView"))

    new UiSelector().resourceId("io.manong.developerdaily:id/tab_bar").childSelector(text("我的"))

2、兄弟元素定位

  使用条件:兄弟元素定位容易

  通过子元素找到父元素,然后通过父元素再去找兄弟元素

  new UiSelector().resourceId(id).fromParent(text("9"))

instance与index区别:

都是从0开始计数,但是:

其中instance是匹配的结果所有元素里面 的第几个元素

而index则是其父元素的几个节点,类似xpath 里面的*[n]

instance用法:

xml:

new UiSelector().resourceId("io.manong.developerdaily:id/tab_bar").childSelector(className("android.widget.TextView").instance(3))

元素定位方法之Uiautomator方法的更多相关文章

  1. selenium的定位方法-单元素定位

    selenium自动化测试中,提供了单个元素定位方法,多个元素定位方法,2种方式都是根据元素属性:ID.NAME.CLASS_NAME.TAG_NAME.CSS_SELECTOR.XPATH.LINK ...

  2. Selenium八种元素定位方法源码阅读

    接触过Selenium的都知道元素定位有八种方法,但用不同的方法在执行时有什么区别呢? 元素定位8种方法(Python版),当然还有每一个方法对应的find_elements方法 find_eleme ...

  3. Appium自动化(10) - appium高级元素定位方式之 UI Automator API 的详解

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 前面介绍过根据id,clas ...

  4. Selenium2学习-009-WebUI自动化实战实例-007-Selenium 8种元素定位实战实例源代码(百度首页搜索录入框及登录链接)

    此 文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,通过 ID.name.xpath.cssSelector.linkText.className.partialLinkTe ...

  5. Robot Framework 教程 (2) - 页面元素定位

    上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框.搜索按钮进行定位.本篇文章主要介绍一下具体的定位方法. 我们的脚本如下: *** Settings *** Li ...

  6. 我是这么学习Selenium元素定位操作的

    写在前面 做web自动化测试都有体会,本质也就是通过操作页面元素对象来模拟用户操作行为,那么首先我们先找到这些元素对象,然后才能进行一系列操作. 我们得先告诉自动化工具或者说代码要操作那个元素,毕竟代 ...

  7. Python自动化学习--元素定位

    from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www. ...

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

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

  9. 不支持find_element_by_name元素定位方法,抛不支持find_element_by_name元素定位方法,会抛如下错误 org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session的解决

    appium1.5后不支持find_element_by_name元素定位方法,会抛如下错误 org.openqa.selenium.InvalidSelectorException: Locator ...

随机推荐

  1. swap 释放

    #swap 释放 -------------------------------- swapoff -a wwapon -a

  2. Ubuntu宝塔面板设置网站 Apache Server API为Apache 2.0 Handler模式

    用过宝塔面板(https://www.bt.cn)的谁用谁知道:  以下来自官网的介绍: “宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据 ...

  3. tensorflow 13:多gpu 并行训练

    多卡训练模式: 进行深度学习模型训练的时候,一般使用GPU来进行加速,当训练样本只有百万级别的时候,单卡GPU通常就能满足我们的需求,但是当训练样本量达到上千万,上亿级别之后,单卡训练耗时很长,这个时 ...

  4. 使用CompletableFuture实现业务服务的异步调用实战代码

    假如我有一个订单相关的统计接口,需要返回3样数据:今日订单数.今日交易额.总交易额. 一般的我们的做法是串行调用3个函数,把调用返回的结果返回给调用者,这3次调用时串行执行的,如果每个调用耗时1秒的话 ...

  5. 在 json4s 中自定义CustomSerializer

    到目前为止,Scala 环境下至少存在6种 Json 解析的类库,这里面不包括 Java 语言实现的 Json 类库.所有这些库都有一个非常相似的抽象语法树(AST).而 json4s 项目旨在提供一 ...

  6. (转)Ngx_Lua使用分享

    原文:https://www.cnblogs.com/yanzi-meng/p/9450999.html ngx_lua 模块详细讲解(基于openresty)---https://www.cnblo ...

  7. 【原】QuickTime安装时,提示CAB文件"QuickTime.cab"中找不到此文件

    卸载安装程序:apple software updateapple mobile device supportapple 应用程序支持32apple 应用程序支持64 再重新安装quicktime

  8. Python - Django - 中间件 process_exception

    process_exception(self, request, exception) 函数有两个参数,exception 是视图函数异常产生的 Exception 对象 process_except ...

  9. 218. The Skyline Problem (LeetCode)

    天际线问题,参考自: 百草园 天际线为当前线段的最高高度,所以用最大堆处理,当遍历到线段右端点时需要删除该线段的高度,priority_queue不提供删除的操作,要用unordered_map来标记 ...

  10. Word 图片表格自动编号、交叉引用、批量更改图片标题格式、生成图录和表录

    1. 前言 论文往往里往往需要插入很多图片,下放需要标上 图a-b,其中 a 是章节号码,b是该章节中第几张图.比如第一章第二副图就是 图1-2.但是有个问题,每次我们插入了一张图或删掉了一张,前后的 ...