在实际的项目测试中总是会有许多的测试用例,要与各种元素进行交互,并获取期待的结果,大概的思路就是:1.根据name\id\className获取元素对象 2.根据appium提供的lib库对元素进行各种操作,包括点击、滚动、快速滑动、输入内容、截屏等。
一、元素定位(针对安卓)
元素定位最常用的方法有三种:第一种是通过元素的文本内容,一般可以通过观察获取;第二种是元素的id/classpath,获取相对麻烦些;第三种是根据元素对象所属的对象类型,获取整个界面的相同类型对象的数组;安卓sdk提供了一些好用的工具帮助我们获取界面上各个元素的基本信息:text,id,classpath,className等,第一个需要介绍的就是UIAutomatorViewer,它的使用方法很简单:首先是根据adb找到设备,然后是同步画面,最后可以通过点击的方式获取每个元素的上述信息。第二个需要介绍的是appium gui提供的Inspector,它的工作方式和UIAutomatorViewer相似,都是通过图形化界面展示每一个画面元素的全部信息。
Ruby中查找元素的语法比较简单:
find_element(:name,"elementName");
find_element(:id,"elementId");
find_elements(:class,"elementClassName")[index];注意:这里获取的是个数组
二、元素交互
常用的交互操作有:点击(click),快速滑动(swipe),滚动(scroll_to),输入内容(send_keys),截屏(screenshot)
eg:
btn = find_element(:name,"登录")
btn.click------>点击登录按钮
swipe start_x: 0.8, start_y: 0.5, end_x: 0.1, end_y: 0.5, duration: 800--->对应开始和结束的两个点,如果数值小于1就代表比例,否则就是实际像素值
scroll_to需要指定某个特征值,比如目标的text文本或者就是目标对象本身。
screenshot在一些难以判断操作结果的状况下可以截取屏幕观察结果。
sleep:在诸如网页加载等耗时操作中可能需要暂停几秒,这时候可以用Ruby的sleep命令
附上Appium的api地址:
https://github.com/appium/ruby_lib/blob/master/docs/android_docs.md
https://github.com/appium/appium/tree/master/docs/cn