首页 > 其他分享 >Appium自动化(5):元素定位工具

Appium自动化(5):元素定位工具

时间:2023-05-23 18:01:39浏览次数:42  
标签:定位 Appium 界面 app 元素 点击 自动化 Inspector

常用元素定位工具使用

uiautomatorviewer定位工具:

元素定位主要用来获取元素信息,获取元素信息后才能用appium提供的相关API去识别和操作元素。

谷歌在AndroidSDK中,提供了元素定位工具uiautomatorviewer,该工具可在android-sdk安装路径下找到:<android-sdk>\tools\uiautomatorviewer.bat

Appium自动化(5):元素定位工具_android

 

 

 使用步骤:1、首先在虚拟机或真机上打开要识别的app 2、在dos命令窗口输入uiautomatorviewer命令 3、然后点击Device Screenshot按钮连接手机

Appium自动化(5):元素定位工具_元素定位_02

 

 

 

 

Appium自动化(5):元素定位工具_Source_03

Appium自动化(5):元素定位工具_Source_04

 

最终效果如下图:app界面内容展示在uiautomatorviewer工具窗口的左侧

 

Appium自动化(5):元素定位工具_Source_05

 备注:android8.1以后sdktools自带的uiautomatorviewer直接打开,截取不到机器界面信息。

 Appium Inspector定位工具

打开Appium-Desktop之后,启动Appium服务,单击该页面右上角的第一个“Start Inspector Session”按钮,就会启动一个新的会话窗口。如下图:

 

Appium自动化(5):元素定位工具_Source_06

跳出 Inspector界面

Appium自动化(5):元素定位工具_android_07

在Inspector界面的Desired Capabilities中配置要识别元素信息app的appPackage和appActivity,点击”start session”即可自动启动android虚拟机的app,并能在Inspector工具上显示app界面,如下图

Appium自动化(5):元素定位工具_元素定位_08

 Appium Inspector定位工具界面介绍:

1、Selecte Elements:根据元素定位;用来识别元素

2、Swipe By Coordinates:根据坐标滑动页面;如果inspector界面没有展示全部,可以通过上滑展示到底部

3、Tap By Coordinates:根据坐标点击操作;inspector界面点击某个元素,可以跳转到该元素的界面,且app同步跳转

4、Back:返回

5、Refresh Source & Screenshot:刷新界面与截图

6、Start Recording:录制按钮,能自动生成自动化脚本

7、Search for element:在App Source中搜索元素

8、Copy XML Source to Clipboard:复制XML源代码

9、Quit Session & Close Inspector:退出会话或结束

10、ource:源代码显示区域

11、Actions:

12、Selected Element:被选中元素信息显示

Appium自动化(5):元素定位工具_元素定位_09

Selected Element: 选中的元素对应的属性信息,这个就是我们查找定位元素的关键信息

index:索引

text:文本

class:类

package:包

content-desc:内容描述

checkable:可选

checked:选中

enabled:可用

focusable:可获得焦点

focused:获得焦点

scrollable:可滚动

long-clickable:可长点击

password:隐藏明文(密文显示)

selected:选中

bounds:界面(起始点坐标/终止点坐标)

resource-id:元素ID

Appium自动化(5):元素定位工具_Source_10

 Appium Inspector录制功能:

 

1、 点击 Start Recording 开启录制

2、点击 Selecte Elements 元素定位

3、选中 操作元素 

4、 在Selected Element界面,点击tap(Tap-点击、Send Keys-写入值、Clear-清空)

5、在 Recorder 下可选择生成代码的语言,并展示在下方空白处 

Appium自动化(5):元素定位工具_android_11

 

标签:定位,Appium,界面,app,元素,点击,自动化,Inspector
From: https://blog.51cto.com/YouJeffrey/6333890

相关文章

  • 超低功耗SUB 1G无线收发+32位 Soc芯片UM2080F32 无线集抄/测温/养老院人员定位
    UM2080F32是一款超低功耗32位IoTP:ARM®Cortex®-M0+,64KBFlash,16KBSRAM,Sub-1GHz射频收发器。工作于200MHz~960MHz范围内。UM2080F32内部还集成了CAN、12位SARADC、UART、SPI、QSPI、I2C等通用外围通讯接口,ADC、OPA、比较器等传感获取接口,以及LPTIMER、WDT等超低功耗......
  • MSE 自治服务帮你快速定位解决 Dubbo 重复订阅导致 RPC 服务注册失败问题
    作者:子葵背景Dubbo是一款RPC服务开发框架,用于解决微服务架构下的服务治理与通信问题,具有易用、超大规模微服务实践、云原生基础设施适配、安全性等特点。但是不正确的Dubbo使用姿势可能会导致Dubbo应用以及ZooKeeper注册中心出现稳定性问题。近期,一线上客户发布时,由于Dub......
  • MSE 自治服务帮你快速定位解决 Dubbo 重复订阅导致 RPC 服务注册失败问题
    作者:子葵背景Dubbo是一款RPC服务开发框架,用于解决微服务架构下的服务治理与通信问题,具有易用、超大规模微服务实践、云原生基础设施适配、安全性等特点。但是不正确的Dubbo使用姿势可能会导致Dubbo应用以及ZooKeeper注册中心出现稳定性问题。近期,一线上客户发布时,由于......
  • Python自动化办公对每个子文件夹的Excel表加个表头(Excel不同名)(上篇)
    大家好,我是皮皮。一、前言上一篇文章,我们抛出了一个问题,这篇文章来进行解答。如果针对子文件夹下不同的Excel表名,应该如何处理?二、实现过程我们继续问ChatGPT,它给出了一个方法,如下所示:提问如下:假如你是一名Python程序员,现在你有一个自动化办公的需求,你桌面上有一个新建文件夹......
  • APP自动化--pytest-把图片添加到测试报告中--(异常截图)
    前面在 APP自动化--pytest-把图片添加到测试报告中--(主动截图)中说明了extra.append(extras.image(driver1.get_screenshot_as_base64()))的用法,那么把它放到conftest的异常截图代码中就可以实现异常截图。importpytestfrompytest_htmlimportextras"""解决pytest-html......
  • 激光建图、定位学习资源整理
    自用,侵删知乎:https://zhuanlan.zhihu.com/p/113616755github:https://github.com/Little-Potato-1990/localization_in_auto_drivinggitee:https://gitee.com/suyunzzz/learn_localization_in_auto_drivinghttps://github.com/suyunzzz/sensor-fusion-for-localization-and-mappi......
  • Python自动化运维
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运......
  • 【iOS开发】后台定位&&socket长链接
    参考:iOS9后台定位无限后台定位注意:这个上架appstore可能会被拒绝,如果你的应用不是和地图类相关的话。目前没想到好的解决方案,有的话请发邮件告诉博主一下,谢谢!!!......
  • 小白如何理解软件自动化接口测试
    随着软件开发行业的不断发展,软件测试接口自动化已经成为了一种趋势。接口自动化可以提高软件测试的效率和准确性,减少人力成本和时间成本,帮助企业更好地实施软件测试接口自动化。1.选择合适的自动化测试工具在进行接口自动化测试之前,需要选择一款适合自己的自动化测试工具。市......
  • Python自动化运维
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运......