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 基础:常用api接口(2)

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

  2. Appium基础教程

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

  3. Appium基础一:Appium概念

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

  4. 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍

    目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...

  5. 手机自动化测试:Appium源码之API(2)

    手机自动化测试:Appium源码之API(2)   TouchAction AppiumDriver的辅助类,主要针对手势操作,比如滑动.长按.拖动等.TouchAction的原理是讲一系列的动作放在 ...

  6. 手机自动化测试:Appium源码之api(1)

    手机自动化测试:Appium源码之api(1)   AppiumDriver getAppStrings() 默认系统语言对应的Strings.xml文件内的数据. driver.getAppStri ...

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

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

  8. appium基础之简单的小例子

    appium环境搭建了,当然也要开始用起来了,记录一下学习的过程 遇到问题 1.The permission to start '.ui.home.view.HomeActivity' activit ...

  9. appium基础一:连接手机和appium-desktop定位元素

    一.获取手机信息 adb devices获取手机或模拟器的设备名 aapt dump badging xxxx.apk获取app的包名.入口等基本信息 如果想要知道手机原生携带的app的基本信息,首先 ...

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

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

随机推荐

  1. linux-zookeeper-kafka入门

    公告:版权所有,违者必究 1.zookeeper安装 前提:先安装jdk,zookeeper运行依赖于java环境. (1.)下载安装包 http://mirror.bit.edu.cn/apache ...

  2. 【Ribbon篇四】Ribbon介绍(1)

    Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具. 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法, ...

  3. (day56)八、删除框、批量创建、分页器组件

    目录 一.ajax结合sweetalert实现删除按钮的动态效果 二.bulk_create批量插入数据 三.自定义分页器 (一)手动推导 (二)自定义分页器 (1)模板 (2)用法 一.ajax结合 ...

  4. ubuntu建立文件或者文件夹软链接

    文件夹建立软链接(用绝对地址) ln -s 源地址  目的地址 比如我把linux文件系统rootfs_dir软链接到/home/jyg/目录下 ln -s /opt/linux/rootfs_dir ...

  5. arduino (3) 控制sim900A发送短信

    狗屎佳世通旗舰店,卖的什么破玩意sim900a芯片,不支持联通卡,还生明模块支持双卡的 之前买的esp8266-07都是内存偷工减料 买的液体浊度传感器给的原理图也不给基本接线. 差评垃圾店,你敢卖就 ...

  6. csp模拟题-201903

    1.小中大(100分) #include<iostream> #include<cstdio> #define maxn 100010 using namespace std; ...

  7. jdk自带监控程序jvisualvm的使用

    监控小程序的配置 生产环境tomcat的配置 编辑应用所在的tomcat服务器下的bin目录下的catalina.sh文件,修改如下: 配置如下内容: export JAVA_OPTS="- ...

  8. 读取指定页面中的超链接-Python 3.7

    #!/usr/bin/env python#coding: utf-8from bs4 import BeautifulSoupimport urllibimport urllib.requestim ...

  9. CodeForces 463D DP

    Gargari got bored to play with the bishops and now, after solving the problem about them, he is tryi ...

  10. 【MySQL】对数据库和表的增删改查

    数据库的基本概念 数据库的英文单词: DataBase 简称 : DB 什么是数据库? 用于存储和管理数据的仓库. 数据库的特点: 持久化存储数据的.其实数据库就是一个文件系统 方便存储和管理数据 使 ...