Uiautomator1.0 学习笔记 - (一)

在写Android case时 每个case都需要继承UiAutomatorTestCase

1.创建JAR

android create uitest-project -n $packageName -t 1 -p $ProjectPath

-n指的是jar包名字  

-t指的是你电脑中的第几个SDK,可以通过android list查看  

-p指的是你的工作空间的路径 

2.build

cd $ProjectPath && $Antpath/apache-ant-1.10.1/bin/ant build

ant build

3.将本地推到手机上

adb push  $path/jarname.jar /data/local/tmp/

4.运行

adb shell uiautomator runtest jarname.jar -c testcasepackage.testcaseclassName

5.日志

Uiautomator1.0 学习笔记 - (一)_第1张图片
日志及说明

Uiautomator定位元素示例

FindElement.java

package interim;

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 FindElement extends UiAutomatorTestCase{

/**

* 根据X,Y点进行点击

* @param x 文件的路径

* @param y 写入文件的内容

*/ 

public void click(int x,int y){

UiDevice.getInstance().click(x, y);

}

// 按resource id定位

/**

* 根据resource id进行定位元素

* @param id resource_id

* @param y 写入文件的内容

*/ 

public UiSelector findByResourceId(String id) {

UiSelector us=new UiSelector();

UiSelector uiseletor=us.resourceId(id);

return uiseletor;

}

/**

* 文本内容等于text

* @param text 文本

*/ 

public void findByText (String text){

UiObject addNote = new UiObject(new UiSelector().text("Add note")); 

try {

assertEquals(addNote.getText(),"Add note");

} catch (UiObjectNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

/**

* 文本包含text

* @param text 文本

*/ 

public void findByTextContains (String text){

UiObject addNote = new UiObject(new UiSelector().textContains("Add"));  try {

assertEquals(addNote.getText(),"Add note");

} catch (UiObjectNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

/**

* 文本包含text

* @param text 文本

*/ 

public void findByTextStartsWith (String text){

UiObject addNote = new UiObject(new UiSelector().textStartsWith("Add")); 

try {

assertEquals(addNote.getText(),"Add note");

} catch (UiObjectNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 按index定位

// 按class name定位

/**

* 根据className进行查找

* @param className 类名

* @param text 文本

*

*/ 

public void findByTextInClass (String className,String text){

UiObject addNote = new UiObject(new UiSelector().className(className).text(text)); 

try {

assertEquals(addNote.getText(),"Add note");

} catch (UiObjectNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

/**

* 根据className进行查找

* @param className 类名

* @param text 文本

*/ 

public void findByTextInObject() throws UiObjectNotFoundException {

    UiObject save = new UiObject(new UiSelector().text("Save"));

    assertEquals(save.getText(), "Save");

    UiObject delete = save.getFromParent(new UiSelector().text("Delete"));

    assertEquals(delete.getText(), "Delete");

}

// 按description定位

// 按package name定位

}

你可能感兴趣的:(Uiautomator1.0 学习笔记 - (一))