1.获取信息类:

1.1 获取当前界面的组件:

driver.currentActivity(); //获取当前界面的activity,可用于断言是否跳转到预期的activity

1.2 获取当前页面的树形结构源代码

driver.pagesource();      //获取当前页面的树状结构图

2.App安装与卸载相关类API

2.1 判断APP是否安装

driver.isAppInstalled("package name");    //判断应用是否已安装

driver.installApp(appPath);               //安装APP

driver.removeApp(StringbundleId);         //卸载包,Android中是包名,IOS是bundleId

driver.closeApp();                        //关闭应用,按住Home键把应用退到后台

driver.launchApp();                       //启动应用

driver.resetApp();                        //先close再launch

2.2 启动其他应用:

driver.startActivity("com.android.camera", ".CameraLauncher");

3.设置相关类:

3.1 获取和设置网络状态

int status = driver.getNetworkConnection().value;  //获取网络状态

System.out.println(status);

driver.setNetworkConnection(new NetworkConnectionSetting(status));  //设置网络状态

//或者

driver.setNetworkConnection(new NetworkConnectionSetting(false, true, false));

4.文件操作类:

4.1.push文件、pull文件

File file = new File("d:\\test.txt"); //test.txt内容为"test"

String content = null;

try {

content = FileUtils.readFileToString(file);

} catch (IOException e) {

e.printStackTrace();

}

byte[] data = Base64.encodeBase64(content.getBytes());

driver.pushFile("sdcard/test.txt", data);

byte[] resultDate = driver.pullFile("sdcard/test.txt");

System.out.println(new String(Base64.decodeBase64(resultDate))); //打印结果为"test"

5.获取控件类(获取多个元素只需要将findElement改成findElements即可):

5.1通过元素id查找当前页面的目标元素:

driver.findElementById("id");   //通过id定位元素

5.2 通过元素name查找当前页面的目标元素:

driver.findElementByClassName("classname"); //通过name定位元素

5.3 通过元素Xpath查找当前页面的目标元素:

driver.findElementByXpath("xpath");    //通过xpath定位元素

5.4 通过元素的name值定位(也就是text)

driver.findElementByName("name");      //通过text值定位

5.5 混合定位,通过Xpath和index等联合定位

driver.find_element_by_xpath("//android.widget.TextView[contains(@text,'图库')]") //在页面检测所有的android.widget.TextView类中含有text="图库"的元素

6.用户操作类:

6.1 点击事件:

1)driver.click();

2)driver.tap(position.duration);       //模拟手指点击,可设置按住时间长度(ms)

如:driver.tap([(300,500)],10)

6.2 摇一摇手机

1)driver.shake()

6.3 输入事件

1)driver.elememt.sendKeys();

2)driver.elememt.sendText();

6.4 滑动屏幕(翻屏和快速移动):

driver.swipe(startX,startY, endX,endY, during(ms));//将屏屏幕从(startX,startY)滑动到(endX,endY)间隔during(ms)

driver.flick(startX,startY,endX,endY)   //按住A(startX,startY)点快速移动到B(endX,endY)点

6.5 缩放事件(适合测试类似有运动地图的场景):

1)driver.pinch(element,percent,steps);                       //在元素上执行缩小操作,percent和steps可不写,当不写时表示默认

如:driver.pinch(element,150,30)

2)driver.zoom(element,percent,steps);                        //在元素上执行放大操作,percent和steps可不写,当不写时表示默认

如:driver.zoom(element,200,50)

6.6 长按事件:

1)driver.longPress();

6.7 Keyevent事件

driver.keyevent("4")   #返回键操作

6.8 打开和关闭操作:

driver.close()    //关闭当前窗口

driver.quit()     //退出脚本运行并关闭每个相关的窗口连接

6.9 获取窗口的高和宽

driver.manage().window().getSize().width;

  driver.manage().window().getSize().height;

7.等待Wait相关类;

7.1 sleep方法:

Thread.sleep(60000) 强制等待60s  //强制等待60s

7.2 implicitlyWait方法

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);  //隐式等待,全局等待30S不管元素是u否已经加载

7.3 WebDriverWait方法(显示等待,需增加一定等待时间,可通过WebDriverWait和util来决定)

7.4 waitActivity方法(隐式等待,需接受三个参数,Activity名称、timeout超出时间和检测时间间隔(S)):

driver.waitActivity("Activity",timeout(s),during(s));

8.AppiumDriver辅助类:

8.1 截屏并保存本地

public static void ScreenShot(AndroidDriver driver,String ScreenName){

String dir_name = System.getProperty("user.dir")+"\\"+"异常图片";

if(!(new File(dir_name).isDirectory())){

new File(dir_name).mkdir();

}

File screen = driver.getScreenshotAs(OutputType.FILE);

try{

System.out.println("异常图片保存路径:"+new File(dir_name));

FileUtils.copyFile(screen, new File(dir_name+"\\"+ScreenName+".jpg"));

}catch(Exception e){

e.printStackTrace();

}

}

8.2 打开通知栏界面:

driver.openNotifications();

8.3 锁屏:

driver.lockScreen(2);//锁屏

//判断是否锁屏

driver.isLocked();

8.4 自动滑动列表

driver.scrollTo("text");   //自动滑动列表

//或者

driver.scrollToExact("text");

Appium基础五:appium相关API的更多相关文章

  1. Appium基础:appium相关API

    1.获取信息类: 1.1 获取当前界面的组件: driver.currentActivity(); //获取当前界面的activity,可用于断言是否跳转到预期的activity 1.2 获取当前页面 ...

  2. appium 基础二:常用api接口

    一.获取手机分辨率 size=driver.get_window_size()#获取手机屏幕大小,分辨率 print(size)#{'width': 720, 'height': 1280} 得到的是 ...

  3. Appium基础一:Appium概念

    1.Appium介绍: Appium是一款开源跨平台(IOS和Android平台)支持多种开发语言(java.python等)进行测试Native/Web/Hybrid的Android/iOS App ...

  4. Appium基础教程

    目录 Appium教程 Appium简介 App自动化测试工具对比 Appium实现原理 环境搭建 Andorid介绍 基本架构 常见布局/视图 基本控件 控件常见属性 Adb介绍 Adb常用命令 A ...

  5. Appium基础——需要知道的

      Appium使用平台厂商提供的自动化框架: 1.ios 苹果的UIAutomation 2.android google的UIAutomator Appium底层使用厂商提供的自动化框架,就不需要 ...

  6. 『与善仁』Appium基础 — 10、Appium基本原理

    目录 1.Appium自动化测试架构 2.Appium架构图 3.Session说明 4.Desired Capabilities说明 5.Appium Server说明 6.Appium Clien ...

  7. 『与善仁』Appium基础 — 12、Appium的安装详解

    目录 (一)Appium server安装 方式一:(桌面方式:推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二:(No ...

  8. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

  9. Appium基础(二)demo

    具体配置,请看上一篇 一.启动Android模拟 Start 打开如下界面:这个过程可能会有些慢,黑屏等等,请耐心等待 二.appium配置 1.点机器人图标 PlatformVersion 选19, ...

随机推荐

  1. TI官网常用链接

    TMS320C6000系列DSP库dsplib下载 TMS320C6000系列DSP库imglib下载 TMS320C6000系列DSP库mathlib下载 TMS320C66657技术文档

  2. 转载:数据库应用开发工具Toad使用笔记

    由于网上TOAD中文教程很少,在网上摘抄了此文章便于学习,感谢原创者. TOAD使用笔记 1.把鼠标停在sql所在行,然后ctrl+Enter直接执行当前sql. 2.解决Toad对中文显示乱码问题( ...

  3. IP简介2

    本笔记介绍java net IP A 类 主要是大型的交换机 1-126  B类 128-191 分配给各个国家的典型的服务器 每个网段支持255*255个设备  每一个B类都可以分配444416个C ...

  4. 1、R-reshape2-cast

    1.cast:     长型数据转宽型数据 (1).acast,dcast的区别在于输出结果.acast 输出结果为vector/matrix/array,dcast 输出结果为data.frame. ...

  5. pysam操作sam文件

    pysam模块 因为要分析sam文件中序列的情况,因此要对reads进行细分,所以之前想用数据库将sam文件信息存储,然后用sql语句进行分类.后来发现很麻烦,pysam就是一个高效读取存储在SAM ...

  6. ZOJ3526【缩点思想】

    一开始做的时候(TLE),A,C,G这三类作为边,然后点和点直接建边搜个环:then time BOOM! 可以发现只属于"A"类的之间都并在一起就好,同理"G" ...

  7. Unity3D 自动添加Fbx Animation Event

    http://blog.csdn.net/aa20274270/article/details/52528449 using UnityEngine; using System.Collections ...

  8. VMware Workstation “无法连接 MKS: 套接字连接尝试次数太多;正在放弃。” 解决方法【转】

    今天和往常一样打开电脑,打开VMware Workstation,打开其中的一台虚拟机,以前都是这么打开没有问题,今天打开虚拟机突然提示“无法连接 MKS: 套接字连接尝试次数太多:正在放弃.”. 经 ...

  9. 关于spring的简概

    一.Spring入门操作 IOC 创建对象 <bean id="user" class="com.itheima.domain.User">< ...

  10. 用户登录之记住密码 Cookie实现