博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 测试bootstrap,手机自动化测试:appium源码分析之bootstrap十三 2
阅读量:5109 次
发布时间:2019-06-13

本文共 2364 字,大约阅读时间需要 7 分钟。

TakeScreenshot

package io.appium.android.bootstrap.handler;

import com.android.uiautomator.core.UiDevice;

import io.appium.android.bootstrap.AndroidCommand;

import io.appium.android.bootstrap.AndroidCommandResult;

import io.appium.android.bootstrap.CommandHandler;

import java.io.File;

/**

* This handler is used to TakeScreenshot.

*

*/

public class TakeScreenshot extends CommandHandler {

/*

* @param command The {@link AndroidCommand} used for this handler.

*

* @return {@link AndroidCommandResult}

*

* @throws JSONException

*

* @see io.appium.android.bootstrap.CommandHandler#execute(io.appium.android.

* bootstrap.AndroidCommand)

*/

@Override

public AndroidCommandResult execute(final AndroidCommand command) {

final File screenshot = new File("/data/local/tmp/screenshot.png");

try {

screenshot.getParentFile().mkdirs();

} catch (final Exception e) {

}

if (screenshot.exists()) {

screenshot.delete();

}

UiDevice.getInstance().takeScreenshot(screenshot);

return getSucce***esult(screenshot.exists());

}

}

截屏并将图片保存在/data/local/tmp路径下的screenshot.png文件中。

OpenNotification

package io.appium.android.bootstrap.handler;

import com.android.uiautomator.core.UiDevice;

import io.appium.android.bootstrap.AndroidCommand;

import io.appium.android.bootstrap.AndroidCommandResult;

import io.appium.android.bootstrap.CommandHandler;

import static io.appium.android.bootstrap.utils.API.API_18;

/**

* This handler is used to open the notification shade on the device.

*

*/

public class OpenNotification extends CommandHandler {

/*

* @param command The {@link AndroidCommand} used for this handler.

*

* @return {@link AndroidCommandResult}

*

* @see io.appium.android.bootstrap.CommandHandler#execute(io.appium.android.

* bootstrap.AndroidCommand)

*/

@Override

public AndroidCommandResult execute(final AndroidCommand command) {

// method was only introduced in API Level 18

if (!API_18) {

return getErrorResult("Unable to open notifications on device below API level 18");

}

// does not make sense on an element

if (command.isElementCommand()) {

return getErrorResult("Unable to open notifications on an element.");

}

final UiDevice device = UiDevice.getInstance();

if (device.openNotification()) {

return getSucce***esult(true);

} else {

return getErrorResult("Device failed to open notifications.");

}

}

}

打开通知栏操作,api18以后在UiDevice中添加了openNotification()方法,打开通知栏。所以该事件就是去调用该方法。

转载地址:http://vejdv.baihongyu.com/

你可能感兴趣的文章
Swift5.1 语言指南(八) 函数
查看>>
C#6.0语言规范(三) 基本概念
查看>>
[MEAN Stack] First API -- 3. Select by ID with Mongoose and Express
查看>>
[TypeScript] 0.First Example
查看>>
siege 压力测试
查看>>
用easyui做datagrid表格
查看>>
3Sum
查看>>
hdu1671(字典树)
查看>>
hdu1561 The more, The Better(树形Dp+01背包)
查看>>
Go net/http获取body中json格式数据
查看>>
Go语言fmt库的print函数源码解析
查看>>
jquery.post获取处理json数据
查看>>
【Dubbo&&Zookeeper】2、 windows平台dubbo-admin管理平台搭建
查看>>
Luogu 3371【模板】单源最短路径
查看>>
Redis高可用升级
查看>>
vue 自定义指令心得
查看>>
实现 jstl标签foreach 功能
查看>>
QT中字符串及其编码
查看>>
Mvvm绑定datagrid或listview的selectItems的方法[转]
查看>>
ACID--事务四大特性
查看>>