zoukankan      html  css  js  c++  java
  • 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 2

    第十步:修改日记内容并保存

    代码3-3-3 修改日记内容并保存

     #Step 10: Add something to the content of the note and save it 
    device.type("YourFirstNote") 54 55 device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP);

    MonkeyRunner.sleep(3) #Wait a bit for the new page to get ready

    device.touch(150,650,MonkeyDevice.DOWN_AND_UP)

    代码的几个关键方法我们在上一节已经学习过了,这里就不做累述。需要提一点的是在修改内容后按下系统菜单键弹出来的Save菜单项的有效点击坐标同样可以通过uiautomatorviewer获得,只需要先获得该控件所在的边界,然后确定一个落在其中的边界就可以了,边界如下图所示:

    图3-3-3 Save菜单项坐标 

    第十一步:重新打开日记内容并获取子图

    代码3-3-4 重新打开日记内容并获取子图

      #Step 11: Open the note again and take another snapshot
      MonkeyRunner.sleep(3)
      device.touch(240,120,MonkeyDevice.DOWN_AND_UP)
      
      MonkeyRunner.sleep(3)  #Wait a bit for the new page to get ready
     
     imgNew = device.takeSnapshot()
     subImgNew = imgNew.getSubImage((0,78,480,391))

    在上一步保存好新增加的日记内容之后,NotePad应用会自动返回到NotesList这个Activity界面来列出所有的日记,在我们这里的示例中只有一个日记。以上代码63行就是直接点击该日记,然后进入到NoteEdtor页面显示出日记内容,最后在69-68行获取到日记内容的子图,整个流程和上面第八步加上第九步是一样的,只是这里没有把打开日记和获取子图分成两步来完成而已。下图显示了打开修改后的日记的内容及内容子图获取的边界。

    图3-3-4 修改后日记内容及控件边界 

    第十二步,比较日记修改前后的内容

    代码3-3-5 比较日记修改前后内容并保存截图

     #Step 12: Compare the two images
     res = subImgNew.sameAs(subImgOrigin,1)
     
     #assert res == True
     
     if not res == True:
         subImgNew.writeToFile("/Users/apple/Desktop/subImgNew.png",
                            "png")
        subImgOrigin.writeToFile("/Users/apple/Desktop/subImgOrg.png",
                            "png")
    通过前面的步骤获得日记内容修改前后的截图后,就可以通过71行的MonkeyImage的sameAs方法对两个截图的内容进比较了。其中第二个参数设置成1,代表两种图如果是一模一样的才会认为是一致的。而我们这里预期的是两个图的内容是不一致的,因为一个内容没有修改过,一个内容由修改过。所以在75行会判断如果返回结果认为这两个图是一致的话,就需要把这两个图保存起来,我这里是保存在桌面,以便我们往后手动去检查究竟是否两个图真的是一样的,还是我们的代码除了问题了。
  • 相关阅读:
    Android Market google play store帐号注册方法流程 及发布应用注意事项【转载】
    cocos2d-x 调用第三方so文件
    ios cocos2d-x 多点触摸
    linux文件分割(将大的日志文件分割成小的)
    Linux 统计某个字符串出现的次数
    scapy基础-网络数据包结构
    mac 下idea光标问题
    mac ox终端显示 bogon的问题
    hibernate和mybatis的区别
    memcached知识点梳理
  • 原文地址:https://www.cnblogs.com/poptest/p/5070424.html
Copyright © 2011-2022 走看看