Robotium--takeScreenshot(截图)】的更多相关文章

1.简介 前面我们介绍了Selenium中TakeScreenshot类来截图,得到的图片是浏览器窗口内的截图.有时候,只截浏览器窗口内的图是不够的,而且TakeScreenshot截图只针对浏览器的web事件,假如你在运行脚本过程,windows上有一个其他软件弹出了一个购物的弹窗页面,这个时候就会干扰你截图.所以,有时候我们需要整个屏幕截图,这个时候我们就需要用到Robot这个类.原理大概是,从电脑屏幕左上角画一个长方形,一直画到屏幕右下角,然后得到File对象,在把这个File是用png还…
在Robotium中,截图的方法时调用takeScreenshot(). 但有使用你会发现明明代码里调用了solo.takeScreenshot(),但却没有截图成功,那是因为被测试的应用没有SD卡的权限(因为该方法会把截图保存在SD卡中). 因此要使用该方法,必须在被测工程的AndroidManifest.xml中添加如下标示: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" &…
把两节的内容汇总起来,第一节讲的是如何在apk中直接进行截屏,用到了Robotium的Solo类的takeScreenShot方法,有一个小的demo,以及从方法一直往里钻,知道它具体是怎么进行截屏的. 第二节讲的是脱离apk,直接在PC端截图,通过的是adb桥接的方式,调用ddmlib.jar包中的AndroidDebugBridge和IDevice的类,对其进行截屏,并保存到我想要的位置,是可以写成一个小工具的. 视频地址:http://study.163.com/course/course…
spoon框架是一个很棒的用例驱动跟测试结果生成加工的框架.但在使用spoon-client时,传入参数需要被测应用的activity实例,跨应用测试会很受限(当然也可能是因为我对android不熟导致的,在使用uiautomator2时,我只能拿到被测应用的activity名,但没办法拿到实例).这里提供一种解决办法,就是直接修改spoon框架的源码,仅供参考. 通过阅读spoon框架源码可以发现,spoon-client提供screenshot的api来截图,截图后会保存在包名路径下,而sp…
testng执行case failed ,testng Listener会捕获执行失败,如果要实现失败自动截图,需要重写Listener的onTestFailure方法 那么首先新建一个Listener 类,继承TestListenerAdapter package com.dbyl.libarary.utils; import org.openqa.selenium.WebDriver; import org.testng.ITestContext; import org.testng.ITe…
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/6113059.html 需求 这两天遇到这样一个事情,因为某测试任务,需要在操作过程中连续的截图,最终分析截图.之前同事用的工具兼容性特别的不好,需要root,并且只适配固定几个版本的机型,因此我决定自己实现一个.首先最先想到的就是使用Uiautomator 1中自带的API来截图. 我们看下Uiautomator 1.0中提供的截图相关的API是什么样子的…
问题场景:有时当我们的脚本运行报错时,需要通过截屏来分析异常的来源.而selenium也提供了可以截图的方法TakesScreenshot.getScreenshotAs 举例:我们把截屏的图片存储在D盘AutoScreenCapture文件夹下,为了好区分截图,每张截图的命名都取当前时间,脚本可以这么写 import org.apache.commons.io.FileUtils;import org.openqa.selenium.OutputType;import org.openqa.s…
一.问题背景 刚开始用的是百度cafe搭建的框架,已经用了一些版本,最后的test版本在7.4的apk上能跑,但是在最新发布的7.5的版本上跑不了,直接提示nullPointer错误,通过打日志的方式发现local这个变量就是null,也就是说根本没有被初始化为正确的值,那么原因是什么呢? 二.问题排查 从两个方面进行排查: 1.我们的test程序: 因为本身用cafe搭建的已经有一段时间,而且当时因为用的是非root的手机,所以没有办法进行debug,所以就想本来cafe就是对robotium…
写这篇微博之前,自动化测试代码中有对于失败测试截图的功能,但是却散落在各个catch语句块中.不便于以后的扩展和维护,AOP思想里说明是面向切面编程,把公共的组件提取出来,可以单独修改维护. 但是直到我看了http://www.cnblogs.com/zhangfei/p/4271923.html文章后,觉得应该尝试下了.在此感谢博主张飞的倾情分享! 步骤一,在公共utility包中加入截图方法 几个重点 a. 明确截图文件存放的位置和名字   b. 调用webdriver 下的getScree…
1.截图类: public class ScreenShot { public WebDriver driver; public ScreenShot(WebDriver driver) { this.driver = driver; } private void takeScreenshot(String screenPath) { try { File scrFile = ((TakesScreenshot) driver) .getScreenshotAs(OutputType.FILE)…