adb基本命令总结(Android Debug Bridge)
adb 是PC和设备连接的桥梁,可以通过adb对devices进行相关操作
adb devices 列出你的devices
adb kill-server 杀掉adb服务(如果设备连接出问题,可尝试)
adb start-server 重启adb服务
adb shell screenrecord /sdcard/runCase.mp4 录制视频保存,默认3min,也可以加--time-limit 60限制时间
adb install jd.apk 向设备安装app
adb pull /sdcard/runCase.mp4 c:// 把手机中文件copy到电脑
adb push C://runCase.mp4 /sdcard/ 把电脑中文件放到手机
以上就是一些基本的adb 命令
appium实现截图
由于我有webdriver 的基础,理解起来比较easy,appium截图实际是继承webdriver的
selenium 中使用的是TakesScreenShot接口getScreenShotAs方法,具体实现如下
1 /** 2 * This Method create for take screenshot 3 * 4 * @author Young 5 * @param drivername 6 * @param filename 7 */ 8 public static void snapshot(TakesScreenshot drivername, String filename) { 9 // this method will take screen shot ,require two parameters ,one is 10 // driver name, another is file name 11 12 String currentPath = System.getProperty("user.dir"); // get current work 13 // folder 14 File scrFile = drivername.getScreenshotAs(OutputType.FILE); 15 // Now you can do whatever you need to do with it, for example copy 16 // somewhere 17 try { 18 System.out.println("save snapshot path is:" + currentPath + "/" 19 + filename); 20 FileUtils 21 .copyFile(scrFile, new File(currentPath + "\\" + filename)); 22 } catch (IOException e) { 23 System.out.println("Can't save screenshot"); 24 e.printStackTrace(); 25 } finally { 26 System.out.println("screen shot finished, it's in " + currentPath 27 + " folder"); 28 } 29 } |
调用: snapshot((TakesScreenshot) driver, "zhihu_showClose.png");
你可以在捕获异常的时候调用,可以实现错误截图,做测试结果分析很有效
appium清空EditText(一个坑)
在使用appium过程中,发现sendkeys和clear方法并不太好使,只好自己封装模拟手工一个一个删除
这里用到keyEvent,具体内容请参考api http://appium.github.io/java-client/
要删除一段文字,该怎么做:
1. 获取文本长度
2. 移动到文本最后
3. 按下删除按钮,直到和文本一样长度
移动到文本最后: 123删除67
public static final intBACKSPACE67
public static final intDEL67
public static final intKEYCODE_MOVE_END123