zoukankan      html  css  js  c++  java
  • 【工具引入】uiautomatorviewer 查找元素后自动生成代码

    缘起

    公司部门调整PC部门和无线部门合并,原本负责主站PC端自动化的同事需要马上上手安卓,IOS自动化。对于初次接触移动端的测试者来说,跨度还是有点大的。加之人员有些变动,不得不搞个工具降低学习成本,马上产出。公司app页面上有动态加载的元素,每次用Appium自带的工具抓取Xpath时,总是报错。为了降低自动化同学的学习成本和解决无法的问题,就对uiautomatorviewer 二次开发。

    和原生的SDK自带的 uiautomatorviewer 优点:

    • 优化截图速度,修复动态元素加载页面截图报错的问题
    • 优化Xpath提取规则,截取相对短的Xpath
    • 支持截取动态加载的页面
    • 自动生成代码
    • 支持U2的xpath 在改造上述工具分享帖子中,有幸得到@carl 老师的神点拨:“这个还可以兼容ios录制呢,好好玩”,于是就想继续对此进行再次开发,以支持IOS,顺便也偷点懒,生成一下IOS自动化中机械重复的代码(driver.findElement("//xxx.xxxxx").click())。不管是不是重复造轮子,对一个刚接触初次接触安卓,和IOS自动化的自己来说也是一次难得的学习机会。 不足之处希望各位老师见谅。 新工具特点:
    • 不需要设置inspector里面的各种参数,不需要启动appium
    • 重要的一点,不需要换定位工具,安卓那边用uiautomatorviewer ,IOS这边用inspector
    • 自动生成代码,我喜欢的懒方式,机械的事情,我只想Ctrl+C ,Ctrl+V
    • 地址: https://github.com/512433465/autotest_helper

    原理

    appium自带工具安卓端和ios原理都是相同的。截图+Pagesource的xml去根据坐标高亮选中元素。

    • 安卓:安卓定位基于【右上坐标】【左下坐标】两点定位元素布局
    • IOS:IOS定位基于【右上坐标】【高度,宽度】由定位点横轴长,纵轴长去定位元素布局 其他相差无几,搞清楚这两点我们就好着手改造
    • 获取PageSource的 xml 参考WebDriverAgent的wiki 把节点名称都换成node (XCUIElementXXXX--->node)因为以uiautomatorviewer 为基础,所以只能Xml以安卓端的为参照
    • 获取截图并压缩,不同的IOS机型截图像素是不同的,而且换算起来很麻烦,所以我选择压缩,压缩后也不用担心控件坐标与截图对应关系
    • 生成xpath,基于安卓的原理稍加改造即可。 以上参考WebDriverAgent的wiki和@carl 老师的帖子传送门

    使用

    • 安卓端:jar放在【android-sdk-windows oolslib】下(请先备份您自带的),启动方式猛击【android-sdk-windows oolsuiautomatorviewer.bat】
    • IOS位置任意位置:shell终端执行: java -XstartOnFirstThread -jar uiautomatorviewer.jar -XstartOnFirstThread(ios使用时,请先确保你用appium的inspector是可以抓取元素的)

    具体使用方式请参照Git上详细使用说明,这里不赘述了。请务必先看完Git上的readme有疑问再问问题

    效果

    • 安卓端:
       
    • IOS端:
       

    实践并总结一下各路大神的无私分享,谢谢各位授之于渔,如有雷同实属参照,改造工具没别的,跟着好的思路分享,就是干!非常感谢,期待大神们分享更多更好的工具思路。
    jar包放到Git上了jar包和具体使用说明

  • 相关阅读:
    OpenCL多次循环执行内核的一个简单样例
    Visual Studio2013的C语言编译器对C99标准的支持情况
    关于OpenCL中三重循环的执行次序
    jQuery判断复选框是否勾选
    JS动态增加删除UL节点LI
    Javascript玩转继承(三)
    Javascript玩转继承(二)
    Javascript玩转继承(一)
    js方法call和apply实例解析
    简单实用的php分页函数代码
  • 原文地址:https://www.cnblogs.com/Ronaldo-HD/p/9915030.html
Copyright © 2011-2022 走看看