ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python+appium自动化测试元素定位——这是刷微博时你时刻幻想的吗?

2021-06-15 15:33:48  阅读:280  来源: 互联网

标签:定位 appium uiautomatorviewer 微博时 python 元素 Android 页面


python+appium自动化测试元素定位

关于app自动化测试,元素定位工具有三个:

•appium自带的Appium Inspector工具

•Android ADT原生的工具

•python版uiautomator2中的weditor

下面只介绍前面两种元素定位工具(以下内容中均以微博为例子)

大家如果有任何Python问题需要咨询的可以加入我的Python交流群里交流讨论!

一、元素定位工具

(一).Appium Inspector

使用该工具的使用前提:
1.客户端通过adb devices的dos命令确认是否连接设备

2.当前连接的设备是否被其它应用程序占用

3.已安装appium desktop(appium的desktop下载地址:appium.io/

使用步骤如下:

1.启动appium服务器,点击右上角的第一个按钮(放大镜按钮),如下图:

@我测试碉堡了
2.进入后页面显示如下图所示,一般情况下都选择本地服务

在这里插入图片描述

3.参数设置完成后点击右下角的Start Session,进入如下图所示页面

在这里插入图片描述
在该页面就可以进行元素定位了

(二).uiautomatorviewer—仅限Android设备使用

使用该工具的使用前提:

1.客户端通过adb devices的adb命令确认是否连接Android设备

2.当前连接的设备是否被其它应用程序占用

3.具有运行Android SDK功能的Windows

4.安装jdk1.8(由于目前不支持jdk1.8以上的版本,需要使用该工具要安装jdk1.8的版本)

5.使用Android5.0以上系统

6.确保为设备打开了开发人员模式,并打开USB调试

安装:

1.在android studio的启动页面当中,选择右下角的configure -> SDK Manager会弹出如图:选择android SDK -> SDK Tools,按图中勾选,点击ok进入安装,安装完成即可关闭android studio。记住图中Android SDK Location对应

在这里插入图片描述
2.在Android studio中找到SDK,找到uiautomator,存放的位置为:D:\Android-SDK\tools\bin\uiautomatorviewer.bat

使用步骤如下:

1.找到uiautomatorviewer.bat文件,双击打开

在这里插入图片描述
2.开启后页面显示如下图:

在这里插入图片描述

在这里插入图片描述

3.若在定位时出现下图问题,可以尝试以下几种解决方法:

在这里插入图片描述

•查看手机是否开启开发者权限,打开USB调试
•在adb命令提示符中输入adb devices查看手机是否连接到PC端,再使用adb shell是否能进入到手机(exit退出)
•应用程序是否被占用
•关闭uiautomatorviewer,重新打开是否能定位到

(三).两种定位工具的区别

•appium inspector需要启动appium服务器,填写Appium Desired Capabilities,略显麻烦,而uiautomatorviewer只需要连接手机

•appium inspector实时获取当前页面布局,而uiautomatorviewer方便存储,不需要实时获取

•appium inspector在操作App到下一页面时,刷新后经常会看到在转圈圈,很久都没有更新

•appium inspector中控件属性有xpath的绝对定位,而uiautomatorviewer没有xpath的绝对定位

•uiautomatorviewer获取页面布局时经常会获取不到

每种工具都有缺陷,选择最适合自己的就好啦

二、元素定位的方法

下面介绍几种元素定位方式,常见的元素定位方式是前三种

(一).ID定位

id对应控件属性列表中的:resource-id

driver.find_element_by_id(“com.sina.weibo:id/tv_title_lookaround”)

(二).XPATH定位

xpath对应控件属性列表中的:xpath(绝对定位只有appium inspector中才有)

在这里插入图片描述

(三).CLASSNAME定位

classname对应控件属性列表中的:class

注意:由于一个页面中可能会存在多个按钮的classname一致,但使用classname定位时,默认选择页面中的第一个classname,可以将所有classname相同的元素放置在一个list列表中,点击你所需要的位置的元素即可(列表中的元素从0开始)

在这里插入图片描述

(四).accessibility定位

accessibility对应控件属性列表中的:content-desc

在这里插入图片描述

(五).text定位

text对应控件属性列表中的:text

在这里插入图片描述

(六).其它定位

元素定位除了使用find_element_by_xxx,还可以使用page_source,page_source能够查找到这个页面的所有元素,再通过if/else来查找目标元素是否存在于页面中

在这里插入图片描述
需要Python,软件测试,自动化测试等相关资料的可以找我免费领取!

在这里插入图片描述

标签:定位,appium,uiautomatorviewer,微博时,python,元素,Android,页面
来源: https://blog.csdn.net/m0_58395003/article/details/117924102

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有