Appium学习(Android)

写Android的Appium Tests 用到 java-client 方法列举:
1.发送keycode完成一些系统的操作

driver.pressKeyCode(4); //返回

2.测试Notification的时候

driver.openNotifications(); //不用去写下拉的动作

3.用UIAutomator获取元素 (AndroidDriver driver)

AndroidElement editElement = driver.findElementByAndroidUIAutomator("resourceId(\"io.appium.android.apis:id/edit\")");

或者

driver.findElement(MobileBy.AndroidUIAutomator("resourceId(\"io.appium.android.apis:id/edit\")"));

可以用UIAutomator的exists()判断元素是否存在
4.MobileBy有很多查找的方法

Appium学习(Android)_第1张图片
a (2).png

5.设备解锁,排除掉些会导致test fail的因素

@Test
public voidtestLock(){
if(driver.isLocked()){
driver.unlockDevice();
}
}

6.遇到ListView里面元素要定位时 native和webview一样 可以先拿到listview再定位

AndroidElement listView =driver.findElementByClassName("android.widget.ListView");
List list = listView.findElementsByClassName("android.view.View");
list.get(1).click();

7.往模拟器放文件 (我放的是图片)

File file=newFile(文件路径);
try{
driver.pushFile("/storage/emulated/0/Android/data/程序包名/cache/img/a.png",toByteArray(file));
}catch(IOException e) {
e.printStackTrace();
}
//文件转byte
public static byte[] toByteArray(File photo)throwsIOException {
FileInputStream fis =newFileInputStream(photo);
BufferedInputStream bis =newBufferedInputStream(fis);
ByteArrayOutputStream baos =newByteArrayOutputStream();
intc = bis.read();
while(c!=-1){
baos.write(c);
c=bis.read();
}
bis.close();
byte[] bytes= baos.toByteArray();
baos.close();
return bytes;
}

8.获取页面全部信息 会输出页面的xml

driver.getPageSource(); 

9.判断元素是否存在

if(driver.findElementsByClassName("android.widget.ListView").isEmpty()){   }

isDisplay()是判断元素visible的 元素不存在会test fail

java-client还有很多API 要用再查吧.....

你可能感兴趣的:(Appium学习(Android))