一.Appium定位步骤

打开appium,输入本地IP,点击启动服务器

1.点击启动检查器会话

2.配置所需功能,点击启动会话

二.App页面元素

App页面元素分为布局和控件两种

1.布局

FrameLayout(框架布局)

LinearLayout(线性布局)

AbsoluteLayout(绝对布局)

RelativeLayout(相对布局)

TableLayout(表格布局)

2.控件

Button、ImageView、EditText、TextView...

三.元素定位方法

1.id定位

通过resource-id定位,但是一个页面中可能存在不止一个相同的resource-id。

By by=MobileBy.id("com.cntaiping.tpl.tptb:id/tv_switch_account");

2.Text定位

MobileBy.AndroidUIAutomator("new UiSelector().text(\"密码登录\")"

3.Classname定位

通过class属性定位,但是class属性可能不唯一

MobileBy.className("android.widget.LinearLayout")

4.Accessibility id定位:content desc

MobileBy.AccessibilityId(\"题库\")

5.xpath定位

(1)xpath绝对路径

从根目录开始找:html/body...

(2)Xpath相对路径

优点:灵活,轻便,耦合性低

//标签名[@属性名=”属性值”]

//匹配指定节点,不考虑他们的位置;

标签名:可以是具体的标签名,也可以是*通配符,表示任意标签名;

@选取属性

1)元素标签名定位

MobileBy.xpath("//iframe")

2)元素名+索引定位

MobileBy.xpath("//*/android.widget.LinearLayout/android.widget.TextView[1]")

3)属性

MobileBy.xpath("//*[@class='gloable-upload']/i")

4)元素标签+属性

MobileBy.xpath("//input[@placeholder='请输入标题']")

5)包含属性部分值

MobileBy.xpath("//div[contains(@class,'btn-submit')]")

6)元素文本内容

MobileBy.xpath("//span[text()='新建']")

7)包含元素文本部分值

MobileBy.xpath("//div[contains(text(),'登 录')]")

(3)Xpath轴定位

轴名称

释义

ancestor

选取当前节点的所有祖先节点(包括父节点) --找所有的祖先

parent

选取当前节点的父节点 -- 找爸爸

preceding

选取当前节点之前的所有节点

preceding-sibling

选取当前节点之前的所有兄弟节点 --找哥哥

following

选取当前节点之后的所有节点

following-sibling

选取当前节点之后的所有兄弟节点 --找弟弟

/轴名称::节点名称[@属性=值]

By.xpath("//*[text()='资讯平台']//preceding-sibling::div/img")

App自动化的元素定位的更多相关文章

  1. App自动化《元素定位方式、元素操作、混合应用、分层设计、代码方式执行Pytest 命令》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.App 元素定位方式 二.元素操作 三.测试混合应用 四.以代码的方式执行 Pytest 命 ...

  2. python3+Appium自动化12-H5元素定位环境搭建

    前言 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素 ...

  3. 混合元素app的H5元素定位

    问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...

  4. (appium+python)UI自动化_03_元素定位工具

    前言 在UI自动化过程中,需要对手机app上的元素进行定位,然后进一步编写自动化脚本操作app.定位元素首先需要定位工具来辅助查看页面元素.小编常用的定位工具有2种,分别是uiautomatorvie ...

  5. selenium+python自动化之元素定位

    自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...

  6. UI自动化之元素定位(xpath、css)

    很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍 ...

  7. Appium+python自动化12-appium元素定位

    前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性

  8. Appium移动端自动化测试之元素定位(三)

    1.name定位 driver.find_element_by_id(') driver.find_element_by_id(') driver.find_element_by_name('登录') ...

  9. python3+Appium自动化13-H5元素定位实践案例

    测试场景 启动钉钉app进入工作H5页面,点击考勤签到 查看webview上元素 1.电脑上打开chrome浏览器输入:chrome://inspect/#devices 2.Discover USB ...

  10. Appium+python自动化12-appium元素定位【转载】

    前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性

随机推荐

  1. Python 潮流周刊#87:媲美 OpenAI-o1 的开源模型(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  2. C笔记---01基础篇

    一.C语言内存分区 1.程序代码区:存放 CPU 执行的机器指令. 2.数据区   2.1常量区:字符串.数字等常量存放在常量区,const修饰的全局变量存放在常量区:常量区的内存是只读的,程序结束后 ...

  3. CF1326G 题解

    题意: 蛛网树是一颗平面树,满足点是该树的凸包的顶点上等价于其是叶子. 给定一个平面树,求有多少种对点集的划分,使得每个划分出来的集合都是蛛网树. Solution 考虑树形 dp.设 \(f_u\) ...

  4. Dev Express WPF 在当前界面显示进度加载等待信息

    执行耗时任务时,为提高用户体验,一般会添加进度状态信息.Dev Express 的 LoadingDecorator 可以实现在当前界面中显示进度信息. 效果图如下: 默认 LoadingDecora ...

  5. [BZOJ4605] 崂山白花蛇草水 题解

    突然想买一瓶,然后喝上几口.(不要命的想法) 动态全局 \(k\) 大想到权值线段树上二分. 由于要存储二维的点,所以得用到我们神通广大的 \(KDT\) 了. 那么想到权值线段树套 \(KDT\) ...

  6. [JOISC2019] 聚会 题解

    随机化好题,但是不会证. 考虑把树看成一条链,链的每个点上缀了一棵树. 那么先随机出两个点 \(x,y\)(实际上随机一个点,另一个点固定似乎更好?),然后对于当前这棵树上的任意点 \(z\),都让他 ...

  7. 在Unity中玩转表达式树:解锁游戏逻辑的动态魔法

    html { overflow-x: initial !important } :root { --bg-color: #ffffff; --text-color: #333333; --select ...

  8. FolderMove:盘符文件/软件迁移工具,快速给C盘瘦身

    前言 很多朋友安装软件的时候总会直接点击下一步,每次都把软件安装到了C盘.时间长了以后系统C盘就会爆满,只能重做系统处理,有了这个软件就可以随时把C盘文件转移到其他分区 介绍 这款是国外软件,界面介绍 ...

  9. 大数据之路Week10_day07 (JavaAPI 操作Redis 与Hbase建立索引,通过查询redis中的索引查询Hbase数据)

    在这里是简单模拟将索引存到redis中,再通过先查询索引再将Hbase中的数据查询出来. 需要考虑的问题: 1.建立redis的连接,建立Hbase的连接 2.如何创建索引,即创建索引的key和val ...

  10. 机器学习 | 强化学习(7) | 融合学习与规划(Integrating Learning and Planning)

    7-融合学习与规划(Integrating Learning and Planning) 1.导论 基于模型的强化学习(Model-Based Reinforcement Learning) 在上一个 ...