04-appium元素定位

一、uiautomatorviewer

uiautomatorviewer是Android-SDK自带的一个元素定位工具,非常简单好用,可以使用该工具查看app应用中的元素属性,帮助我们在代码中进行元素定位。

1)使用步骤
  1. 在Android-SDK安装目录中进入到 android-sdk-windows\tools\ 路径下,直接双击uiautomatorviewer.bat即可启动。
  2. 电脑连接真机或模拟器。
  3. 启动待测试的app应用。
  4. 点击uiautomatorviewer左上角的Device Screenshot按钮,会获取设备当前显示的页面。
  5. 用鼠标点击想要定位的元素。
  6. 查看右下角的node detail,可查看该元素的属性信息。
2)定位元素

移动端元素定位通常使用以下两种方法:

1、通过id定位,在Android中,id属性就是指resource-id。

注意:Android页面中不同的元素,可能具有相同的id。

driver.find_element('id', id_value)

2、通过xpath定位,在Android中,Toast控件必须通过xpath来进行定位。【Toast(吐司)是Android用于提示信息的一个控件!Toast是一种很方便的消息提示框,会在屏幕中显示一个消息提示框,任何按钮,也不会获得焦点,一段时间过后自动消失!】

注意:Android页面中的元素具有bounds(坐标)属性,xpath正是根据元素的坐标来进行定位的。

driver.find_element('xpath', xpath_value)

3)案例演示
python 复制代码
from appium import webdriver
import time

# 设置启动参数
desired_cap = {}
desired_cap['platformName'] = 'Android'
desired_cap['platformVersion'] = '6.0.1'
desired_cap['deviceName'] = '127.0.0.1:7555'
# 必须参数,指定被测软件的包名
desired_cap['appPackage'] = 'com.differ.xiaoming'
# 必须参数,指定要打开app的哪个页面
desired_cap['appActivity'] = 'com.differ.xiaoming.activity.CalcActivity'
desired_cap['automationName']='Uiautomator2'
desired_cap['noReset'] = True
desired_cap['newCommandTimeout'] = 6000
desired_cap['unicodeKeyboard'] = True
desired_cap['resetKeyboard'] = True

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_cap)
time.sleep(5)

# 1.定位数字2
driver.find_element('id', 'com.differ.xiaoming:id/btn_two').click()
# 2.定位加号+
driver.find_element('id', 'com.differ.xiaoming:id/btn_plus').click()
# 3.定位数字6
driver.find_element('id', 'com.differ.xiaoming:id/btn_six').click()
# 4.定位等号=
driver.find_element('id', 'com.differ.xiaoming:id/btn_equal').click()
time.sleep(1)
# 5.打印计算结果
print(driver.find_element('xpath', '//android.widget.EditText[@bounds="[0,542][891,666]"]').text)

二、Appium Inspector

Appium Inspector是appium自带的一个元素定位工具,这部分将介绍Appium Inspector是如何定位元素的。

参考文章: https://cloud.tencent.com/developer/article/2370035。

1)Appium中的Appium Inspector

首先,打开appium并点击Start Server按钮,启动appium server,监听本地4723端口。

然后,使用以下两种方式打开Appium Inspector窗口。

2)下载安装Appium Inspector

只有在旧版本的appium中才可通过上述方式打开Appium Inspector窗口,如果使用的是最新版本的appium,就需要单独安装Appium Inspector了。

安装地址为:https://github.com/appium/appium-inspector。

如果不想安装,也可以直接使用网页版:https://inspector.appiumpro.com/。

3)Desired Capabilities配置

直接在对应的输入框中输入以下内容,主要包括目标app应用的包名、Activity名等。

python 复制代码
capabilities = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='127.0.0.1:7555',
    appPackage='com.differ.xiaoming',
    appActivity='com.differ.xiaoming.activity.CalcActivity',
    language='en',
    locale='US'
)
4)Start Session

上述配置完成之后,点击Start Session按钮,即可进入如下界面。

  • 最左边是目标app应用当前显示的页面。
  • 中间是以XML格式显示界面上的控件布局。
  • 最右边是选择的元素的详细属性信息。

点击红框按钮,可以选择元素,查看其属性信息。比如:下图中我们选择的是数字3按钮,其详细属性信息在最右边显示。

5)定位元素及操作

获取到元素属性信息后,就可通过代码对元素进行定位和操作。定位和操作相关代码与uiautomatorviewer中的代码类似,这里不再重复演示。

相关推荐
系统集成架构师6 小时前
连趣云内置问卷:从线索收集到销售跟进的全流程自动化
自动化·问卷·连趣云ipaas
qqxiaoxingxing6 小时前
HR重复性工作自动化落地指南:先梳理任务边界,再选工具
运维·自动化
Jlzn88887 小时前
华东电芯分选通道数怎么配才不堵线
java·人工智能·架构·自动化·制造
qq_284274059 小时前
数控机床编程基础与坐标系:编程六步流程、程序号/程序段/程序字格式,与右手定则下车床铣床XYZ轴判定(含考点)
笔记·学习·自动化·制造
海宇数据10 小时前
零信任架构实战:基于海宇入职背调报告构建自动化即时配送与网约车众包运力准入鉴权网关
运维·人工智能·架构·自动化
天远API11 小时前
零信任架构实战:基于天远公安二要素政务版构建自动化不动产交易与契税核算实名核实网关
人工智能·架构·自动化·php
Qt云程序员14 小时前
零代码网页数据采集教程:不写爬虫,把网页数据搬进 Excel
运维·自动化
VisionDataLab15 小时前
机器视觉技改可扩展性设计:模块化视觉架构,实现分阶段工位扩容
自动化·视觉检测
qq_2842740515 小时前
S7-1200 PLC硬件与启保停实训:CPU选型与DC/DC/DC、循环扫描五阶段、博途组态及电动机启停自锁梯形图(含考点)
笔记·学习·自动化·制造
工业传感笔记15 小时前
复杂工况下激光传感器选型:一套可验证的国产方案评估框架
其他·自动化