zoukankan      html  css  js  c++  java
  • uiautomator python版本

    摘要:

    利用jsonrpc技术直接包装uiautomator,调用uiautomator的api在本地直接编写脚本,然后运行测试case,这样比用Java写,然后再打包,runcase要简单的多,关键是他还延伸很多有用的方法,比google原生的要强大一点。

    Name:

    Python wrapper of Android uiautomator test tool

    author:

    贺晓聪

    Github:

    https://github.com/xiaocong

    bundle.jar   jsonrpc中所用到的服务器类的支持jar包

    使用方法很简单,下载2个jar包:bunder.jar,uiautomator-stub.jar。可以在github下,我一会也会分享。下好这2个jar,将其push到android手机当中,然后启动服务器,我写了个批处理,直接运行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


    当服务器启动后会显示如下:

    此时服务器正在运行中,好了,开始写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))

    https://blog.csdn.net/itfootball/article/details/28392295

  • 相关阅读:
    微信小程序支付接口之Django后台
    wx.request 请求与django
    ubuntu16.04 安装使用meld及问题
    微信小程序上传单张或多张图片
    ip地址掩码和位数对应关系表、子网掩码、网络地址、主机地址-yellowcong
    公网IP地址就一定是A类地址和B类地址吗?那C类地址就一定是私有地址吗?
    太厉害了,终于有人能把TCP/IP协议讲的明明白白了!
    linux/shell/bash 自动输入密码或文本
    shell case例子
    spring 配置Value常量(不支持到static上)
  • 原文地址:https://www.cnblogs.com/aliceyang/p/11962803.html
Copyright © 2011-2022 走看看