经过前几期的学习,是不是各位都已经成功的将脚本跑起来了?是不是很有成就感?是不是想要了解更多的内容?不要慌张,学习今天的内容,我们就可以更愉快的玩耍Appium了。常见的API是基于java-client 4.12 如果与你之前了解的内容不同,那么以本教程为主,毕竟4.12是当前最新版本,以前的API很多都已经改掉了。 阅读此文需要10分钟,更需要之前内容的基础,如果你没有阅读之前的教程,请在菜单中点击往期精彩。、
所谓的API是指java-client的API,官方文档: http://www.javadoc.io/doc/io.appium/java-client/4.1.2
官方文档说明
文档结构:
io.appium.java_client.AppiumDriver 是一个抽象类; io.appium.java_client.AppiumDriver 类包含所有Android和iOS共享的方法 一个.io.appium.java_client.ios.IOSDriver 和 io.appium.java_client.android.AndroidDriver 并且都是继承io.appium.java_client.AppiumDriver 类而各自又能够实现特定的方法。类似的 io.appium.java_client.ios.IOSElement 和 io.appium.java_client.android.AndroidElement 都是继承 io.appium.java_client.MobileElement。
常见API简介
常见的API一般分为以下几类:1. 安装卸载操作 2. 元素定位 3.相关手势操作 。
而对于使用Appium进行自动化测试,最为重要的就是首先掌握元素定位的API。
Appium 元素定位API
单个元素定位:
- //继承selenium,可以直接在By里面实现xpath/name/id等
-
- driver.findElement(By.className("className"));
-
- //Android和iOS都支持的
-
- driver.findElementByAccessibilityId("AccessId");
-
- driver.findElementByClassName("Class Name");
-
- driver.findElementByCssSelector("css Selector");
-
- driver.findElementById("id");
-
- driver.findElementByLinkText("link text");
-
- driver.findElementByTagName("tag Name");
-
- driver.findElementByXPath("xpath");
-
- //Android系统特有的
-
- driver.findElementByAndroidUIAutomator("UI Automator");
-
- //iOS特有的
-
- driver.findElementByIosUIAutomation("UI Automation");
-
- 多个元素定位:
-
- //继承selenium,可以直接在By里面实现xpath/name/id等
-
- driver.findElements(By.className("className"));
-
- //Android和iOS都支持的
-
- driver.findElementsByAccessibilityId("AccessId");
-
- driver.findElementsByClassName("Class Name");
-
- driver.findElementsByCssSelector("css Selector");
-
- driver.findElementsById("id");
-
- driver.findElementsByLinkText("link text");
-
- driver.findElementsByTagName("tag Name");
-
- driver.findElementsByXPath("xpath");
-
- //Android系统特有的
-
- driver.findElementsByAndroidUIAutomator("UI Automator");
-
- //iOS特有的
-
- driver.findElementsByIosUIAutomation("UI Automation");
顾名思义: driver.findElement(By.id("id"))就是通过id定位,而driver.findElementByXPath("//android.widget.TextView[contains(@text,'is xpathname')]") 就是通过xpath进行定位。
了解了这些常见的定位API,那么该如何使用呢? 接下来我将举例说明。
以android为例,定位三部曲
第一步:连接你的Android设备,可以是虚拟机也可以是真机,可通过adb devices 进行验证。
第二步:打开Android SDK自带的UIAutomatorViewer ,在
sdk/tools路径下
第三部:选择元素,找出其唯一属性进行定位
使用text定位
driver.findElementByText("button");
使用className定位
driver.findElementByClassName("android.widget.Button");
使用UIAutomator定位
driver.findElementByAndroidUIAutomator("new UiSelector().text(\"button\")");
使用xpath
driver.findElementByXPath("//android.widget.Button[@text='button']");
当然你也可以使用Android Studio 自带的 DDMS 辅助定位。
如何获取APK信息
首先打开Appium GUI,选择Android。接着选择APK路径和package就能获取相关信息。
以上就是今天的内容,回顾一下那个脚本,分为以下几个部分:
设置DesiredCapabilities,把待测APP的相关信息和device的相关信息设置完毕。
创建driver并编写测试操作内容
针对测试点进行判断,即使用Assert
测试结束,结束session
可以归纳为,一个完整的测试用例是有测试步骤和Assert组成。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….