Android无线测试之—UiAutomator UiDevice API介绍七

本文介绍UI自动化测试中的截图功能与等待空闲状态的方法。包括如何使用API进行截图及调整图片质量与尺寸,以及如何实现不同场景下的等待空闲操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

截图与等待空闲

一、截图和等待空闲相关知识:

1)图片缩放比例:例如图片从100像素缩小到50像素

2)图片质量:是指图片大小,质量越高图片越大,质量越低图片越小

3)File类:指的是一个文件或者一个文件夹

4)图片格式:图片截图都采用的PNG格式

5)空闲状态:窗口没有更新就是没有动作,界面处于不动状态

6)窗口更新事件:窗口打开的过程就是一个更新事件,打开后不动了就是空闲状态

二、截图相关API:

返回值方法名描述
booleantakeScreenShot(File storePath)把当前窗口截图并将其保存为PNG默认1.0f的规格(原尺寸)和90%质量,参数为File类的文件路径
boolentakeScreenShot(File storePath, float scale, int quality)把当前窗口截图为PNG格式图片,可以自定义缩放比例和质量

 

 

 

 

 

参数说明:

storePath:存储路径,必须为png格式

scale:缩放比例,1.0为原图

quality:图片压缩质量,范围为0-100

三、截图API应用举例:

package com.uiautomatortest;

import java.io.File;

import android.graphics.Point;
import android.os.Bundle;
import android.os.RemoteException;
import android.view.KeyEvent;

import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class Test extends UiAutomatorTestCase {
    
    public void testScreen(){
        
        UiDevice.getInstance().pressHome();
        sleep(1000);
        UiDevice.getInstance().pressMenu();
        sleep(2000);
        UiDevice.getInstance().takeScreenshot(new File("/sdcard/screen.png"));
    }

}
Test.java

四、等待空闲相关API:

返回值方法名描述
voidwaitForIdle(long timeout)自定义超时等待当前应用处于空闲状态
voidwaitForIdle()等待当前应用处于空闲状态,默认等待10s
booleanwaitForWindowUpdate(String packageName, long timeout)等待窗口内容更新事件的发生

 

 

 

 

 

五、等待空闲API

package com.uiautomatortest;

import java.io.File;

import android.graphics.Point;
import android.os.Bundle;
import android.os.RemoteException;
import android.view.KeyEvent;

import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class Test extends UiAutomatorTestCase {
    
    public void testWait(){

        //[256,577][320,640]
        int x, y;
        x=(320-256)/2+256;
        y=(640-577)/2+577;
        UiDevice.getInstance().pressHome();
        UiDevice.getInstance().waitForIdle(3000);
        UiDevice.getInstance().click(x, y);
        String packageName="com.android.browser";
        UiDevice.getInstance().waitForWindowUpdate(packageName, 20000);
        
    }

}
Test.java

 

转载于:https://www.cnblogs.com/fsw-blog/p/4549793.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值