• Android自动化测试之——MonkeyRunner(3)


    本文主要介绍MonkeyDevice的方法。

    上文中,使用MonkeyRunner方法连接设备并返回一个MonkeyDevice对象,使用该对象调用MonkeyDevice方法可实现对设备的操作。主要包括:点击、拖拽、截图、按键、输入内容

    一、常量

    MonkeyDevice的touch()、press()、type()方法,需要用到这些常量

    • DOWN:按下事件,touch()、press()方法用到
    • UP:抬起事件,touch()、press()方法用到
    • DOWN_AND_UP:按下马上抬起,touch()、press()、type()三个方法用到

    二、MonkeyDevice方法

    1、startActivity()

    打开应用

    device.startActivity("com.android.browser/.BrowserActivity")

    2、touch(integer x, integer y, integer tpye)

    点击某个坐标点,发送事件。以下两种方式都可以

    device.touch(200,300,MonkeyDevice.DOWN_AND_UP)
    device.touch(200,300,'DOWN_AND_UP')

    3、press(string name, dictionary type)

    发送指定类型指定键码的事件

    #按下HOME键
    device.press('KEYCODE_HOME',MonkeyDevice.DOWN_AND_UP) 
    #按下BACK键
    device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP) 

    KeyCode: 

    home键:   KEYCODE_HOME 
    back键:     KEYCODE_BACK 
    拨号键:     KEYCODE_CALL 
    挂断键:     KEYCODE_ENDCALL 
    上导航键: KEYCODE_DPAD_UP 
    下导航键:  KEYCODE_DPAD_DOWN 
    左导航:     KEYCODE_DPAD_LEFT 
    右导航键:  KEYCODE_DPAD_RIGHT  
    ok键:         KEYCODE_DPAD_CENTER 
    上音量键:  KEYCODE_VOLUME_UP  
    下音量键:  KEYCODE_VOLUME_DOWN 
    power键:   KEYCODE_POWER 
    camera键: KEYCODE_CAMERA 
    menu键:   KEYCODE_MENU
    更多见:http://www.android-doc.com/reference/android/view/KeyEvent.html
     
    4、type(string message)
    将消息中包含的字符发送到此设备,就好像它们在设备的键盘上键入了一样。这相当于使用键事件类型DOWN_AND_UP为消息中的每个键代码调用press()。
    device.type("zhuting")

    5、installPackage(string path)

    device.installPackage('D:\apk\taobao.apk') # 安装包

    6、removePackage(string package)

    device.removePackage('com.tencent.mm') # 卸载包

    7、takeSnapshot()

    image1 = device.takeSnapshot()

    8、reboot()

    device.reboot() # 重启系统

    9、wake()

    唤醒屏幕

    10、drag(tuple start, tuple end, float duration, integer steps)

    在这个设备的屏幕上模拟拖动手势(触摸、保持和移动)

    start:开始坐标
    end: 结束坐标
    duration :拖动持续时间(以秒为单位),默认1.0秒
    steps: 插值点时要采取的步骤。默认值是10

    device.drag((200,600),(200,300),0.1,10) # 可实现滑动操作,上滑操作

    附demo1.py

    #encoding:utf-8
    from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
    
    #连接设备
    device = MonkeyRunner.waitForConnection(3,'emulator-5554')
    MonkeyRunner.sleep(2)
    print('connect device success')
    
    '''
    #安装应用
    device.installPackage('D:\apk\taobao.apk')
    print('install taobao')
    MonkeyRunner.sleep(5)
    
    #卸载应用
    device.removePackage('com.tencent.mm')
    print('uninstall taobao')
    MonkeyRunner.sleep(5)
    '''
    
    #打开应用,打开浏览器
    device.startActivity("com.android.browser/.BrowserActivity")
    print('open browser')
    MonkeyRunner.sleep(5)
    
    #点击网址框
    device.touch(200,80,"DOWN_AND_UP")
    MonkeyRunner.sleep(2)
    
    #输入网址
    device.type("www.baidu.com")
    device.touch(124,151,"DOWN_AND_UP")
    MonkeyRunner.sleep(5)
    
    #点击搜索框
    device.touch(100,370,"DOWN_AND_UP")
    MonkeyRunner.sleep(2)
    device.type("zhuting")
    MonkeyRunner.sleep(2)
    device.touch(390,162,"DOWN_AND_UP")  #点击搜索
    MonkeyRunner.sleep(5)
    
    #截图
    image = device.takeSnapshot()
    image.writeToFile('E:\autoTest\test_02.png','png')  #保存截图
    MonkeyRunner.sleep(5)
    
    #HOME键
    device.press("KEYCODE_HOME","DOWN_AND_UP")
    MonkeyRunner.sleep(2)
    
    device.drag((450,500),(50,500),0.5,10) # 可实现滑动操作,左滑
    MonkeyRunner.sleep(5)
    
    device.press('KEYCODE_POWER',MonkeyDevice.DOWN_AND_UP) # 电源键休眠
    MonkeyRunner.sleep(2)
    device.wake() # 唤醒设备
    
    #重启系统
    device.reboot()
  • 相关阅读:
    NSIS实现ArcEngine Runtime安装和自动注册
    .Net平台下开发中文语音应用程序(转载)
    NSIS:判断并安装.NET Framework的例子(转载)
    教你如何将IPHONE恢复正常(转载)
    C# SendMessage WPARAM大全 (收集)
    关于开发WPF的一些感想
    C#版本的CPU性能测试
    ITTC数据挖掘平台介绍(二) 微博数据挖掘和分析
    [XMOVE自主设计的体感方案] XMove 4.0 无线组网协议
    [XMOVE自主设计的体感方案] XMove 4.0节点介绍——抽象节点和硬件
  • 原文地址:https://www.cnblogs.com/fancy0158/p/10074663.html
Copyright © 2020-2023  润新知