Android无线测试之—UiAutomator UiObject API介绍五

获取对象属性与属性的判断

1、获取对象属性相关API

返回值API说明
RectgetBounds()获取对象矩形坐标,矩形左上角坐标与右下角坐标
intgetChildCount()获得下一级子类数量
StringgetClassName()获得对象类名属性的类名文本
StringgetCountDescription()获得对象描述属性的描述文本
StringgetPackageName()获得对象包名属性的包名文本
StringgetText()获得对象文本属性的文本
RectgetVisibleBounds()返回可见视图的范围,如果视图的部分是可见的,只有可见部分报告的范围

 

 

 

 

 

 

 

package com.test.uiobject;

import android.graphics.Rect;
import android.view.KeyEvent;

import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class Demo extends UiAutomatorTestCase {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String jarName,testClass,testName,androidId;
        jarName="demo";
        testClass="com.test.uiobject.Demo";
        testName="testGet";
        androidId="1";
        new UiAutomatorHelper(jarName,testClass,testName,androidId);

    }
    
    public void testGet() throws UiObjectNotFoundException{
        UiDevice.getInstance().pressHome();
        sleep(2000);
        UiObject message=new UiObject(new UiSelector().text("Messaging"));
        message.clickAndWaitForNewWindow();
        UiObject createMessage=new UiObject(new UiSelector().resourceId("com.android.mms:id/action_compose_new"));
        createMessage.clickAndWaitForNewWindow();
        
        UiObject messageContent=new UiObject(new UiSelector().resourceId("com.android.mms:id/embedded_text_editor"));
        String text=messageContent.getText();
        System.out.println("Text is: "+text);
        
        String className=messageContent.getClassName();
        System.out.println("ClassName is: "+className);
        
        String description=messageContent.getContentDescription();
        System.out.println(description);
        
        String packageName=messageContent.getPackageName();
        System.out.println(packageName);
        
        Rect rect=messageContent.getBounds();
        System.out.println(rect);
        
        //childCount()
        UiDevice.getInstance().pressHome();
        sleep(2000);    
        
        UiObject apps=new UiObject(new UiSelector().descriptionContains("Apps"));
        apps.clickAndWaitForNewWindow();
        
        UiObject fileManager=new UiObject(new UiSelector().text("File Manager"));
        fileManager.clickAndWaitForNewWindow();        
        
        UiObject movies=new UiObject(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").index(4));
        System.out.println("Movies have "+movies.getChildCount()+" childs");
        movies.click();
    }

}
Demo.java

2、获取对象父类与子类节点

返回值API说明
UiObjectgetChild(UiSelector selector)获取对象的子类对象,可以递归获取子孙当中某个对象
UiObjectgetFromParent(UiSelector selector)从父类获取子类,按照UiSelector获取兄弟类(递归)

 

 

 

 

 

 

package com.test.uiobject;

import android.graphics.Rect;
import android.view.KeyEvent;

import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class Demo extends UiAutomatorTestCase {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String jarName,testClass,testName,androidId;
        jarName="demo";
        testClass="com.test.uiobject.Demo";
        testName="testGetChildAndGetFromParent";
        androidId="1";
        new UiAutomatorHelper(jarName,testClass,testName,androidId);

    }
    
    public void testGetChildAndGetFromParent() throws UiObjectNotFoundException{
        UiDevice.getInstance().pressHome();
        sleep(2000);    
        
        UiObject apps=new UiObject(new UiSelector().descriptionContains("Apps"));
        apps.clickAndWaitForNewWindow();
        
        UiObject fileManager=new UiObject(new UiSelector().text("File Manager"));
        fileManager.clickAndWaitForNewWindow();        
        
        UiObject movies=new UiObject(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").index(4));
        
        //getChild()
        String fileName1=movies.getChild(new UiSelector().className("android.widget.TextView").index(0)).getText();
        System.out.println("The file1 name is: "+fileName1);
        
        //getFromParent()
        //movies.getFromParent(new UiSelector().resourceId("com.cyanogenmod.filemanager:id/navigation_view_details_item").index(2)).click();
        movies.getFromParent(new UiSelector().className("android.widget.LinearLayout").index(2)).click();
    }

}
Demo.java

3、属性的判断

返回值API描述
booleanisCheckable()检查对象Checkable属性是否为true
booleanisChecked()检查对象Checked属性是否为true
booleanisClickable()检查对象Clickable属性是否为true
booleanisEnabled()检查对象Enabled属性是否为true
booleanisFocusable()检查对象Focusable属性是否为true
booleanisFocused()检查对象Focused属性是否为true
booleanisLongClickable()检查对象LongClickable属性是否为true
booleanisScrollable()检查对象Scrollable属性是否为true
booleanisSelected()检查对象Selected属性是否为true

 

 

 

 

 

 

 

 

 

package com.test.uiobject;

import android.graphics.Rect;
import android.view.KeyEvent;

import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class Demo extends UiAutomatorTestCase {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String jarName,testClass,testName,androidId;
        jarName="demo";
        testClass="com.test.uiobject.Demo";
        testName="testTrueOrFalse";
        androidId="1";
        new UiAutomatorHelper(jarName,testClass,testName,androidId);

    }
    
    public void testTrueOrFalse() throws UiObjectNotFoundException{
        UiDevice.getInstance().pressHome();
        sleep(2000);    
        
        UiObject apps=new UiObject(new UiSelector().descriptionContains("Apps"));
        apps.clickAndWaitForNewWindow();
        
        UiObject setting=new UiObject(new UiSelector().text("Settings"));
        setting.click();
        sleep(2000);
        
        //WiFi开启则点击关闭,关闭的则点击开启
        UiObject wifi=new UiObject(new UiSelector().className("android.widget.Switch").instance(0));
        if(!wifi.isChecked()){
            wifi.click();
            System.out.println("WiFi's checked is "+wifi.isChecked());
        }
        else
            wifi.click();
            System.out.println("WiFi's checked is "+wifi.isChecked());
    }

}
Demo.java

 

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值