写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有很多查找的方法
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 要用再查吧.....