个人总结一下自己做app自动化所遇到的坑,还有一些个人的心得,下面是个人的总结,希望能够给大家带来一些帮助哦,首先我们不管是在app自动化,还是web自动化,元素的定位尤其重要:个人经常使用的定位如下:

1.使用XPTH定位

普通的XPTH定位,可以拿取,class、text、resource-id、index 等等去进行定位

//*[@text='好好学习']
//*[class='ndroid.widget.ImageButton']

- 使用XPTH里面的contains写法取定位 注意:这种在定位页面元素是动态的使用最佳,传统的定位都无法进行定位,因为页面是动态的

定位 text 属性所对应的值中包含的有"好好"

//*[contains(@text,'好好')]

- 使用XPATH 组合定位 当定位到某个元素的时候,单单使用class定位,无法成功定位的时候,我们可以使用其他的属性进行组合定位,有时候也是可以的 类似于下面中间加一个 and 去组合

//*[@class='android.widget.Button' and @text='转账']

- 使用XPTH的层级定位 也就是相对定位 /.. 表示一个上一级或者下一级的意思,当想要定位某个页面元素的时候,可以使用的属性值非常的少,而且resource-id  也是动态的,如下图,这种就无法进行使用定位的。

class 也无法进行定位,可以用来定位的属性几乎没有

使用层级定位,注意:" /..  " 表示一个层级," // " 表示下面所有的元素,有时候使用" /   " 表示下面某个元素的值 如果使用 "  /  " 不行的话就试试  " // " 例如:

  • // + class 所对应的值  表示某个层级下面所有class 所对应的元素
  • / + class 所对应的值  表示某个层级下面单个class 所对应的元素
//android.widget.ImageButton[@content-desc="叠"]/../../..//android'.widget.EditText

- 如果说使用层级定位下面有text的文本就可以直接这样去写:

//*[@resource-id='com.tencent.mm:id/e8y']/../../..//*[@text='通讯录]

2.还是可以使用ACCESSBILITY_ID的属性值去进行定位,前提是该元素属性值当中有:content_desc 这个属性(ps:这个属性一般是给那些:学习盲人使用的,在国外的开发会增加这个属性,国内要少一点,自带自动语音的功能)  写法如下:

self.driver.find_element(MobileBy.ACCESSBILITY_ID,"Make a Popup!")

注意:MobileBy 是继承 by方法的

在做app自动化的过程中所遇到的注意点如下

坑点1:

在设置自动化app参数 desired_caps  的时候,注意:有些app如果加了权限验证,就必须通过启动页进行启动,否则将无法启动 

- 使用技巧:使用的时候先真机连接好,然后appium服务成功开启,然后输入终端terminal当中,等命令执行结束的时候,然后按几下回车,方便观看,然后在真机里面去打开app 可以看到出现的几行中有对应的信息了

adb logcat "ActivityManager:I *:s" | grep "cmp"

如果是没有加权限验证的,就可以 使用如下命令去获取

- windows 的话使用 findstr 去代替grep 其他不变

adb logcat |grep -i displayed

查询的结果如下:

坑点2:

在pycharm中,安装appium的插件的时候,注意最好安装 :Appium-Python-Client version 1 所对应的版本,我之前使用2的时候去 调用 TouchAction 触控方法的时候,就会出现提示 TouchAction 已经被停用,让我使用 W3C 如下图:

可以直接在terminal中去使用pip标注库管理器去指定安装的版本为1.3.0,这里我使用的是python3的环境,所以是pip3

pip3 install Appium-Python-Client==1.3.0

坑点3:

我们在使用appium去创建一个Desired Capabilities 的时候,像做一些需要历史记录的app自动化最好就把 noReset 的这个参数给设置上,不然的话,像我在做微信app自动化的时候,忘记设置,直接把我的聊天记录全部抹去了

如何去做App自动化以及注意事项相关推荐

  1. pythonapp自动化_GitHub - qdyxmas/PyAutoTest: python Autotest UI自动化 APP自动化 HTTP接口自动化...

    PyAutoTest自动化平台 1.环境搭建 1.1 下载或拷贝整个PyAuthoTest到指定的目录,如D:\PyAuthoTest 1.2 安装Python2.7以及需要使用到的安装包列表如下 r ...

  2. android性能测试自动化,Android App自动化性能测试探究

    作者:彭海波 前言 Android App的性能测试是移动测试过程中必不可少的一个环节.在我们项目组内,性能测试的过程是这样的,先设置测试场景,然后一边手工执行场景,一边通过工具获取性能数据,为了减少 ...

  3. 4行代码,让app自动化框架支持 webview 混合应用操作

    移动端 app 自动化框架很多,但是有一些框架因为不支持混合应用测试,一直没有完全流行.比较典型的是经典的 Python 框架 uiautomator2, 这个框架简单好用,没有 appium 那样复 ...

  4. 十分钟弄懂最快的APP自动化工具uiautomator2

    相信很多使用appium做过APP自动化的人都深有感触: appium运行慢.时间长 uiautomatorviewer定位元素时得关掉appium server 在低版本的appium上获取toas ...

  5. Appium+python实现App自动化登录

    Appium+python实现App自动化登录 以下是个人用Appium + python写的第一个App自动化案例,仅做单页面,比较简单,后续将涉及到主功能模块化,需使用到功能时调用即可. 获取设备 ...

  6. appium手机APP自动化定位元素

    目录 1 什么事手机app自动化,作用和特点 2 自动化原理: 3 定位元素 根据ID 根据CLASS NAME 根据ACCESSIBILITY ID Xpath 1 什么事手机app自动化,作用和特 ...

  7. APP自动化遇到问题总结-持续更新

    **1.**app自动化页面无法使用uiautomator和appium定位,原因是因为页面做了截屏限制,如果是自己的页面可以让开发重新打包一个没有禁止截屏的apk,如果是第三方软件,那么需要获取页面 ...

  8. [facebook-wda]搭建iOS App自动化环境

    搭建iOS App自动化环境 一.测试结构介绍 手机端的WDA Runner(WebDriverAgent)类似于appium测试框架中的 UIAutomator Server,将从客户端接收到的控制 ...

  9. uni app 自动化索引列表

    uni app 自动化索引列表,官方推荐的第三方插件 https://ext.dcloud.net.cn/plugin?id=375 [{"letter": "A&quo ...

最新文章

  1. 二叉树的最近公共祖先—leetcode236
  2. 英语分词组_考生必看!成人高考英语大牛教你如何轻松考高分
  3. linux svn权限如何打开文件,如何让 SVN 或者 GIT 保留 Linux 文件权限
  4. java sha1加密ascii码_如何使用加密芯片完成SHA1摘要运算
  5. r语言plotmds_多元统计分析R语言建模| 11 多维标度法MDS
  6. python运行快捷键是什么_Python快捷键
  7. 中子射线照相检测技术
  8. 中控考勤机管理员破解/清除/密码/恢复出厂设置方法
  9. 洛谷试炼场P1035 级数求和
  10. Windows 0x80190001错误解决
  11. Unable to prase template Class Error message: Index 0 out of bounds for length 0
  12. 二叉树层次遍历(借助队列实现)
  13. 谷歌浏览器webGL实验
  14. 网易考拉API,根据ID取产品详情 OneBound数据
  15. 【华人学者风采】余家国 武汉理工大学
  16. python画猪头程序_用python画猪头的方法
  17. CBitmap Detach和DeleteObject的关系
  18. 信息安全技术小测试08设备与环境安全
  19. Wordpress搭建(初学者)
  20. 配置法 求解1D第二类线性的Fredholm积分方程 +MATLAB

热门文章

  1. android 时间颜色,android修改状态栏时间和日期颜色.docx
  2. 计算机到路由器用交叉线的好处,路由器与交换机连接-路由器和交换机之间是用交叉线还是用直通线联 – 手机爱问...
  3. 计算机组成原理中的直接映像,计算机组成原理--cache存储器的直接映像与变换...
  4. 程序员独特的浪漫:拿女朋友的照片做成动漫人物当头像
  5. 为什么计算机会出现两个用户,Win7登录时有2个账户|为什么电脑开机时有二个账户...
  6. 好嗨呦是谁_抖音好嗨哟感觉人生已经到达了高潮出自哪里?谁唱的?
  7. 机器学习:样本权重的理解
  8. MySQL read_only 与 super_read_only 之间的关系
  9. 路由器fast服务器没响应,FAST路由器复位常见问题解决方法
  10. 机器学习入门基础(一)