Giter Club home page Giter Club logo

autotest_helper's Introduction

Lvmama Ui Automator Viewer使用帮助(兼容支持IOS,安卓)

项目介绍

二次开发 uiautomatorviewer 优化定位符生成,支持生成Java,Python自动化代码,修复自带工具画面有动态加载时截图失败问题,优化自带工具截图速度 ,实现类似录制脚本功能。兼容IOS安卓。

觉得不错的老铁,给个双击!Git上star 一下。有问题Issue反馈一下。或者进下面的群,QQ讨论交流!

软件架构

本工具以安卓SDK自带uiautomatorviewer为源码基础,在此上进行深度二次开发。

  • 优化定位符Xpath生成,提取相对短的Xpath,解决自带工具Xpath太长不友好的问题
  • 修复自带uiautomatorviewer截图报错,无法截图的Bug
  • 优化截图速度优化获取Xml速度,至少减少原截图耗时的一半
  • 支持生成Java,Python自动化代码,实现类似录制脚本功能,生成后只需Ctrl+C,Ctrl+V到自己的代码中即可运行
  • 兼容IOS,安卓,支持真机以及模拟器,你无需要换工具安卓平台和Mac平台都可以使用此工具
  • 优化删除IOS的Xml中的垃圾空节点,定位元素更清爽

安装教程

  1. 本工具和SDK自带Jar功效相同,只是在此基础二次开发无需任何安装(前提是您Mac或者Windows系统中已经安装并且配置好了Java环境)
  2. Windows环境,复制该jar到您SDK安装目录uiautomatorviewer.jar所在的目录下(请先备份你原来的jar,一般目录在SDK的tools\lib下:\android-sdk-windows\tools\lib)
  • 备份方法特别说明:SDK目录下只有一个uiautomatorviewer.jar的,把该jar后缀改为.zip,即改为uiautomatorviewer.jar==>uiautomatorviewer.zip,下载一个我二次开发的jar。把下载的jar放到该目录下即可。
  • 有的同学SDK目录下有uiautomatorviewer.jar和uiautomatorviewer-26.0.0-dev.jar两个jar。把两个jar后缀都改为.zip即改为uiautomatorviewer.jar==>uiautomatorviewer.zip,uiautomatorviewer-26.0.0-dev.zip,先下载一个我二次开发的jar改为uiautomatorviewer-26.0.0-dev.jar,再下载一个我二次开发的jar。把两个jar放到该目录下即可。
  • 所谓的备份,说白了,就是替换原有的jar的意思,大胆替换其实也是可以的,为了可以恢复为原来的jar起见,备份一下而已。
  1. Mac环境,复制该jar到任意目录即可,使用前请先确认appium inspector可以抓取元素,谢谢!
  2. 安卓自动化:
  • 复制LvmamaXmlKit.jar到本地D盘根目录下,打开命令行窗口执行命令:adb push D:\LvmamaXmlKit.jar /data/local/tmp/

  • 打开手机文件管理,到 /data/local/tmp/目录下,检查确保LvmamaXmlKit.jar是否复制到手机中(如图1)

  • 模拟器中安装ADBKeyBoard.apk并设置设置默认输入法为ADBKeyBoard,并关闭硬件物理键盘(如图2)

  • 打开您的app,点击uiautomatorviewer.bat 开启生成代码之旅。

  • 特别提示,JDK最好用1.8的,1.7或者以下可能会有问题,抱歉

LvmamaXmlKit.jar一定要推送到手机里,截图,截取xml要用到这个jar,这个jar不放到手机/data/local/tmp/里100%异常,请告别这个工具吧,谢谢!

图1:LvmamaXmlKit.jar推送成功与否检查示例 模拟器:

1524477949570

真机: 命令行利用adb shell 查看,不会的自行百度。

1524477949570

图2:硬件物理键盘关闭与否检查示例

1524478068333

2,使用说明

本工具基于安装自带的uiautomatorviewer进行二次开发,主要优化xpth提取,支持选取短的相对xpath,同时支持全部索引xpath定位,以及基于UiSelector的定位。选取元素后,增加右键菜单,提供了,常用的点击,输入,长按,等待,查找元素,按键等代码的生成。使用本工具前请先确认adb 是否能连上您的设备,如未连上,请百度自行解决谢谢!

  1. Windows环境,和自带的uiautomatorviewer启动方式相同,找到您SDK安装目录的uiautomatorviewer.bat(一般目录在SDK的tools下:\android-sdk-windows\tools)双击启动即可
  2. Mac环境,打开shell终端,1,输入cd xxx 进入你uiautomatorviewer.jar所放置的目录,回车,2:输入命令:java -XstartOnFirstThread -jar uiautomatorviewer.jar即可启动
  3. 根据您项目需要,选择您要生成代码的语言(如图3)

图3:语言选择示例 1524478068333

Python代码生成示例

  • 选择Python,选中画面元素1524479147962
  • 选择Click-->id:1524479147962 类似不再重复截图,欢迎尝试 选择Xpath:driver.find_element_by_xpath("//android.widget.ImageView[@content-desc='国内游']").click() 选择ID:driver.find_element_by_id("com.gift.android:id/search_edit").click() 选择desc:driver.find_element_by_accessibility_id("境外门票").click() 选择class:driver.find_element_by_class_name("android.widget.TextView").click() 选择text:driver.find_element_by_name("玩水季").click()

Java代码生成示例

  • 1524479147962

  • 如上图,点击门票后,右击,弹出菜单,选择Click时,弹出ClickBy菜单,选择xpth 时,会生成driver.findElement("//android.widget.ImageView[@content-desc='门票']","xpath").click();

  • 同步点击手机,选择Click(Reshot),或者Longpress(Reshot)菜单时,会同步点击模拟器,并重新截取屏幕。

  • 同步输入,选择input时,会在手机控件同步输入。更多使用方法期待您的发现,如使用中有任何问题,欢迎讨论交流!

测试交流论坛:https://testerhome.com/ 测试工具交流QQ群:610460807

致谢

  • 工具群:610460807 的群主管理
  • Testerhome论坛的carl 老师

autotest_helper's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autotest_helper's Issues

Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@ca36d68 Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@ca36d68

pc

  • win10
    真机
  • 小米android10系统
    java
  • version "1.8.0_271"
    按照文档需求已把LvmamaXmlKit.jar文件推送到临时目录下
    android-sdk\tools\lib 下面仅有一个uiautomatorviewer-26.0.0-dev.jar把这个jar 按照需求替换成库里那个jar。

127|apollo:/data/local/tmp $ pwd
/data/local/tmp
apollo:/data/local/tmp $ ls -l
total 9186
-rw-rw-rw- 1 shell shell 1118 2020-11-22 22:45 LvmamaXmlK
drwxrwxrwx 3 shell shell 3488 2020-11-21 23:38 dalvik-cache
drwxrwxrwx 5 shell shell 3488 2020-11-14 17:47 perfd

打开android-sdk\tools\bin\uiautomatorviewer.bat 抓取xml时出现
“Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@2d47b33
Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@2d47b33

dos窗口
文件加载异常:
C:\Users\ADMINI~1\AppData\Local\Temp\uiautomatorviewer_7276255349737423856\dump_5897836361985842193.uix
adb服务、手机都重启多次还是如此,这个项目还在维护的话请关注下这个问题, 谢谢~

你好,这个还维护吗 右键选input的时候,不管选何种定位方式,自动生成的python代码都是xpath的,且有些问题

自动生成的python代码如下:(最后一个操作少了driver,且这个元素是有唯一ID属性定的,我选ID 也是出来XPATH
driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.flash.download:id/add_input' and @text='输入下载链接,支持http、https、ftp、ed2k、magnet等']").clear()
time.sleep(2)
.find_element_by_xpath("//android.widget.EditText[@resource-id='com.flash.download:id/add_input' and @text='输入下载链接,支持http、https、ftp、ed2k、magnet等']").send_keys(333)

如果还维护的话,代码输出框这能不能加个清屏按钮,另外右键find生成的元素变量命名能不能自动加个数字来区分

失效

uiautomatorviewer.jar最新版目录好像变为:
tools\lib\monitor-x86_64\configuration\org.eclipse.osgi\bundles\2\1.cp\libs

且无法获取画面层级了:
2021-06-08_18-45-00

作者大大,能否修复一下?

能开源吗?想完善一些内容

1,adb connect 手机,想摆脱数据线
2,原版带有搜索功能,此版本的jar包,没有搜索了
3,增加名称,元素唯一性检验,多谢!

使用夜神模拟器

无法截图,出来的图像是0kb,夜神模拟器和小米8SE都是这样的。
default

Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@14243dd4

已通过adb shell 查看LvmamaXmlKit.jar
java -XstartOnFirstThread -jar uiautomatorviewer-26.0.0-dev.jar
shell报错:文件加载异常:/var/folders/k5/5xsk3r9s4b7b9_k0qw7xw3bw0000gn/T/uiautomatorviewer_4402091181245857770/dump_1398279819454324593.uix
Lvmama UI Automator Viewer报错:Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@14243dd4
Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@14243dd4

解析XML文件出错

screenshot from 2018-10-23 18-21-15

Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@6589d966
Error while parsing UI hierarchy XML file: null[Ljava.lang.StackTraceElement;@6589d966

LvmamaXmlKit.jar已经复制到手机上

athene_f:/data/local/tmp # ls -l
total 1632
-rw-rw---- 1 shell shell   1118 2018-10-23 18:15 LvmamaXmlKit.jar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.