常用的appium元素定位工具:

(1)Android SDK 中提供的元素定位工具uiautomatorviewer;

(2)AppiumDesktop提供的元素定位工具Appium Inspector ;

(3)自动化框架UIAutomator2提供的元素定位工具weditor;

 常用元素定位方法:

1、通过resourceId定位

driver.find_element_by_id("more-icon")

2、通过text的文本属性定位

driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("食品")').click()

3、通过xpath定位

driver.find_element_by_xpath('//android.widget.ListView/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()

而对于text属性为文本的元素,也可以用xpath定位:

driver.find_element_by_xpath("//*[@text='图书']").click()

4、通过accessibility_id定位

accessibility_id定位就是通过UI Automator(即Android_SDK自带的uiautomatorviewer)工具查看的content-desc属性

driver.find_element_by_xpath("//*[@resource-id="com.taobao.taobao:id/rv_main_contai")

使用uiautomator方法定位

即driver.find_element_by_android_uiautomator('new UiSelector().xxx("xxx")')方法。

(1)text属性

driver.find_element_by_android_uiautomator('new UiSelector().text("食品")').click()
driver.find_element_by_android_uiautomator('new UiSelector().text("text文本")').click()
driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("以xxx开头的文本")').click()
driver.find_element_by_android_uiautomator('new UiSelector().textContains("包含xxx文本")').click()
driver.find_element_by_android_uiautomator('new UiSelector().textMatches("正则表达式")')

(2)resourceId属性

driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.baidu.yuedu:id/webbooktitle")').click()

(3)className属性

页面上的class属性一般不唯一,可先用复数定位,再用下标(索引)具体定位。

driver.find_elements_by_android_uiautomator('new UiSelector().className("android.widget.TextView")')[1].click()

(4)description属性

driver.find_element_by_android_uiautomator('new UiSelector().description("contenet-des属性")').click()

组合定位元素

(1)resourceId+text 或 className+text

# className+text组合定位
class_text = 'className("android.widget.TextView").text("150")'
driver.find_element_by_android_uiautomator(class_text).click() # resourceId+text组合定位
id_text = 'resourceId("com.fenbi.android.solar:id/couponValue").text("150")'
driver.find_element_by_android_uiautomator(id_text).click()

父子定位childSelector

# 父子定位childSelector
son_ele = 'className("android.widget.LinearLayout").childSelector(text("数学"))'
driver.find_element_by_android_uiautomator(son_ele).click()

兄弟定位fromParent

# 兄弟定位fromParent
bro_ele = 'resourceId("com.fenbi.android.solar:id/tutor_tab").fromParent(text("发现"))'
driver.find_element_by_android_uiautomator(bro_ele).click()

参考:https://www.cnblogs.com/yoyoketang/p/7833554.html

Appium之定位元素的更多相关文章

  1. appium关于定位元素

    Windows上定位元素我用的是uiautomatorviewer 这个工具在你的SDK-tools目录下,点击uiautomatorviewer.bat启动,注意appium在跑的时候是取不到的 工 ...

  2. Appium Android定位元素与操作

    文章写得很好,转载备用 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录 ...

  3. Appium Inspector定位元素与录制简单脚本

    本次以微信为例, 使用Appium自带的Inspector定位工具定位元素, 以及进行最最最简单脚本的录制: capabilities = { "platformName": &q ...

  4. appium -- Xpath定位元素

    如文章<Appium基于安卓的各种FindElement的控件定位方法实践>所述,Appium拥有众多获取控件的方法.其中一种就是根据控件所在页面的XPATH来定位控件. 本文就是尝试通过 ...

  5. python+appium-desktop:安卓(android)7.0以上使用appium无法定位元素(无法refresh)且 无法运行脚本

    --解决方法: 启动appium时配置中添加: "automationName":"uiautomator2" --扩展: 想支持安卓7.0及以上版本需要满足一 ...

  6. Appium学习路—Android定位元素与操作

    一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tools目录下 monitor:Android SDK自带的一个工具,在tools目录下 Appium Ins ...

  7. appium 使用findElementByAndroidUIAutomator 定位元素示例

    appium 使用findElementByAndroidUIAutomator 定位元素示例 import io.appium.java_client.remote.MobileCapability ...

  8. 【转】Appium如何定位安卓APP元素

    转载原文:https://www.jianshu.com/p/efe9dcf8bbaf 一.定位工具 在安装appium环境的时候我们已经安装了SDK,里面就自带有元素定位的工具,位置在.../sdk ...

  9. Appium+Python3+iOS定位元素

    前言: 最近在做IOS自动化测试,IOS的Appium环境都配置OK,执行起来真的慢,慢到怀疑人生,那么今天就来总结一下IOS定位方式和各个定位方式的速度排序. 据我观察,按查找元素的顺序速度,从快到 ...

随机推荐

  1. JavaScript 使用yrm修改镜像源

    安装yrm npm install -g yrm 列出当前可用的镜像源 # yrm ls npm ----- https://registry.npmjs.org/ cnpm ---- http:// ...

  2. IDEA 非常重要的一些设置项 → 一连串的问题差点让我重新用回 Eclipse !

    开心一刻 建筑行业内,我看过的最凶残笑话(IT行业内好一致!) 上联:一天晚上两个甲方三更半夜四处催图只好周五加班到周六早上七点画好八点传完九点上床睡觉十分痛苦 下联:十点才过九分甲方八个短信七个电话 ...

  3. 记一次生产环境tomcat线程数打满情况分析

    前言 旨在分享工作中遇到的各种问题及解决思路与方案,与大家一起学习. -- 学无止境, 加油 ! Just do it ! 问题描述 运行环境描述 tomcat-8.5 单节点(该应用集群20个节点) ...

  4. Python基础入门知识点——Python中的异常

    前言 在先前的一些章节里你已经执行了一些代码,你一定遇到了程序“崩溃”或因未解决的错误而终止的情况.你会看到“跟踪记录(traceback)”消息以及随后解释器向你提供的信息,包括错误的名称.原因和发 ...

  5. Mybatis-07-多对一和一对多处理

    多对一处理 如, 多个学生,对应一个老师 多个学生关联一个老师(多对一) 一个老师有很多学生(一对多) SQL: create table `teacher`( `id` int(10) not nu ...

  6. 【算法•日更•第四十七期】Mac与windows系统的差别

    小编最近装了个Mac系统,因为小编已经有笔记本可以用linux了,所以就决定在台式机上装个双系统,结果一不小心把Mac装在C盘上了,哎,说多了都是泪啊. 其实用了Mac之后才发现windows特别好用 ...

  7. 使用Kali中的Metasploit生成木马控制Windows系统

    一.概念:Kali基于debin的数字取证系统,上面集成了很多渗透测试工具,其前身是BT5 R3(BtackTrack). 其中Metasploit是一个综合利用工具,极大的提高了攻击者的渗透效率,使 ...

  8. Linux三剑客老三---grep

    1.Linux三剑客老三 过滤需要的内容,例子:grep -v oldboy hello.txt grep一般常用参数: -a:在二进制文件中,以文本文件的方式搜索数据. -c:计算找到"搜 ...

  9. J20航模遥控器开源项目系列教程(二)使用说明 | 遥控器制作完成了,怎么用?

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...

  10. 配置react / antd 按需加载 并且使用less(react v16)

    1.开启项目   并且执行 yarn eject 下载好我们需要的插件(babel-plugin-import   less  less-loader   antd  react-loadable   ...