zoukankan      html  css  js  c++  java
  • 利用jsonrpc技术包装uiautomator

    昨天一天在网上搜索解决上一篇文章中的exception:


    monkeyrunner内置uiautomator出错的原因


    尽管没找到解决办法。可是让我无意中发现了一个好工具,比sl4a更好用的工具。直接包装uiautomator。调用uiautomator的api在本地直接编写脚本,然后执行測试case,这样比用java写。然后再打包。runcase要简单的多,关键是他还延伸非常多实用的方法,比google原生的要强大一点。

    以下让它登场吧。


    Name:

    Python wrapper of Android uiautomator test tool

    author:

    贺晓聪

    Github:

    https://github.com/xiaocong


    用法非常easy。下载2个jar包:bunder.jar,uiautomator-stub.jar

    能够在github下。我一会也会分享。

    下好这2个jar,将其push到android手机其中,然后启动server,我写了个批处理,直接执行cmd.bat:


    adb forward tcp:9008 tcp:9008
    adb push bundle.jar /data/local/tmp
    adb push uiautomator-stub.jar /data/local/tmp
    adb shell uiautomator runtest  uiautomator-stub.jar bundle.jar -c com.github.uiautomatorstub.Stub


    当server启动后会显演示样例如以下:




    此时server正在执行中,好了。開始写uiautomator的case吧。既然是python,当然python的环境一定要配置好。这里我就不阐述这个了,要说的是,想要用这个工具,得依照站点上的说明安装一些module。





    我安装了uiautomator.py,jsonrpclib包,urllib3包。具体你能够具体看看github上的说明,当一切准备就绪的时候,就来享受一下该工具带给你的解放吧。所以非常感谢作者的付出,由于有了这些人,才让我们感觉到技术的美好。


    我还是不忘我的初衷。我就是要做用uiautomator来获得界面 控件的信息,看看该工具能不能实现。

    直接上代码:


    # -*- coding: utf8 -*-
    
    from uiautomator import device as d
    #点亮屏幕
    #d.screen.on()
    #dump界面信息
    #device.dump("hierarchy.xml")
    #获取界面控件信息并打印
    xml = d.dump()
    print xml

    执行后结果:




    我要的目的达到了。以下看看我之前苦苦无法解决的问题就是动态界面的问题。我们调到秒表界面。执行该脚本:





    我能对作者表达一下爱慕么。尽管我也是男人。哈哈!Done it!

    速度还比用uiautomator工具要快。


    那么我要的东西都已经得到,来看看还有什么强大的功能。


    d(text="WLAN").right(className="android.widget.Switch").click()


    在设置里。我们想要点击WLAN右边的开关键,用上面的一行代码就能够搞定。这种方法非常实用。搞过uiautomator的人应该知道,在一些没有resource-id来唯一辨识该switch的地方,我之前是通过index来获得。由于当前界面有2个开关。用上面的方法就非常精确,就是运行的时候有点慢。由于它要先找到WLAN这个控件。然后向右比对控件,可能是这个原因造成的效率慢。




    d(scrollable=True).gesture((100, 100), (100, 400)).to((200, 500), (300, 200))

    相冊里查看相片时缩小图片的方法。


    我就介绍这几个方法,其它的大家去作者站点细致阅读吧。记得要抱有感恩之心,对作者的奉献表示感谢。可是在jsonrpc的工具执行过程中,想用uiautomatorviewer查看控件信息,是不行的,直接会报错!

  • 相关阅读:
    Web发布cab文件打包的ActiveX控件总结 (转)
    【转】GLSL语言内置变量(转)
    osg学习 osg源码分析最长的一帧 第五日
    利用ATL技术创建ActiveX控件CircleCtl 。简单介绍 VC2003 使用 ATL 开发 ActiveX 控件(转)
    不用安装界面器实现系统支持xvid编码器
    BitBlt 注意事项(CAPTUREBLT) (转)
    使用ATL开发ActiveX控件
    Ossimplanet编译笔记(VS2008)(转载)
    端午小长假谨防挂马网站 病毒模仿杀软骗取钱财 狼人:
    2009年度全球顶级杀毒软件(性价比)排名 狼人:
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6789802.html
Copyright © 2011-2022 走看看