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


    截图与等待空闲

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

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

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

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

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

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

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

    二、截图相关API:

    返回值 方法名 描述
    boolean takeScreenShot(File storePath) 把当前窗口截图并将其保存为PNG默认1.0f的规格(原尺寸)和90%质量,参数为File类的文件路径
    boolen takeScreenShot(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:

    返回值 方法名 描述
    void waitForIdle(long timeout) 自定义超时等待当前应用处于空闲状态
    void waitForIdle() 等待当前应用处于空闲状态,默认等待10s
    boolean waitForWindowUpdate(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
  • 相关阅读:
    记MongoDB的安装
    Python格式化输出指定宽度及占位符
    LMDB数据库加速Pytorch文件读取速度
    IDEA设置输入后自动提示
    IDEA2020 最新激活
    java 编译执行cmd命令
    算法9:What is the sum of the digits of the number 21000
    JAVA8 LocalDateTime
    算法8:已知 a^2+b^2=c^2(a,b,c 为自然数,a<b<c),且a+b+c=1000,求abc的值?
    ROS学习笔记
  • 原文地址:https://www.cnblogs.com/fsw-blog/p/4549793.html
Copyright © 2020-2023  润新知