zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    iostream迭代器操作"txt文本文件"无法写入的思考
    Qt 相对路径 绝对路径
    "lambda"和“bind”的初步思考
    "partition"和“stable_partition”的思考
    "accumulate"的思考
    顺序容器“inset”的思考
    C++重载函数 const形参 引用指针 const_cast
    C++ 可变参数的函数
    JDK8流式处理常用例子
    JDK8时间新API
  • 原文地址:https://www.cnblogs.com/fsw-blog/p/4549793.html
Copyright © 2011-2022 走看看