测试框架UI自动化

appium---appium 常见API

2017-06-04  本文已影响0人  小蜗牛的成长

之前有一段时间学习过appium框架,这次趁机借着已报名参加的线上课程,重新认识了一遍appium框架,总能从中收获一点意外的小惊喜

我们都知道,appium的核心其实就是一个web服务器,它提供了一套REST的接口。它收到客户端的连接、监控命令,之后在移动设备上执行这些命令,最后把执行结果放在HTTP响应中返回给客户端。基于上述原理,appium框架提供了一系列的API供调用,可用python3 -m pydoc -b命令在本地打开API文档
   appium API 整体大致可归纳为:

整体大致情况
用法
driver. find_element_by_id(“id”)
driver. find_elements_by_id(“id”)
其中一个区别需要注意:
找不到元素时,find_element_*会抛出异常,而find_elements_*不会,以下其他定位方式同理
用法
driver. find_element_by_name(“name”)
driver. find_elements_by_name(“name”)
用法
driver. find_element_by_name(“Xpath”)
driver. find_elements_by_name(“Xpath”)
用法 
driver. find_element_by_class_name(“android.widget.LinearLayout”)
driver. find_elements_by_class_name(“android.widget.LinearLayout”)
用法
 driver.find_element_by_accessibility_id()
 该字段存在的意义主要是为了一些有残障的人士准备的,方便他们使用程序
用法
driver.find_element_by_android_uiautomator('.elements()[1].cells()[2]')
driver.find_element_by_android_uiautomator('**new UiSelector()**.text("Custom View")').click() #根据text属性定位,并点击
text属性的方法
driver.find_element_by_android_uiautomator('new UiSelector().textContains("View")').click()        #textContains
driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("Custom")').click()    #textStartsWith
driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^Custom.*")').click()    #textMatches
用法
driver.find_element_by_ios_uiautomation('.elements()[1] .cells()[2]')
用法
element.click()
用法
element.send_keys(“测试”)
用法
element.clear()
用法
driver.swipe(100,100,100,400)
用法
driver.flick(100,100,100,400)
用法
driver.shake()
    用法 
driver.lock()
用法
 driver.scroll(el1,el2)
用法
driver.drag_and_drop(el1,el2)
用法
driver.zoom(element)#默认分成50步完成,放大量为200%
用法
driver. pinch (element)
用法
driver.tap([(300,500)],10)
用法
driver.keyevent(4) #返回
用法
width=driver.get_window_size()['width']
height=driver.get_window_size()['height']
用法
x=element.location['x']
y=element.location['y']
用法
width=element.size['width']
height=element.size['height']
用法
driver.current_activity
用法
driver.context
driver.app_strings()
用法
driver.wait_activity(activity,timeout,interval)
用法
driver.quit()
用法
driver.background_app(3)
用法
driver.save_screenshot('/Screenshots/foo.png')

结语
   以上各种方法仅代表个人在日常测试中经常使用或者尝试去用的方法,实际上,appium 提供的API还有很多,以后遇到再继续说。另外,在编写自动化脚本的时候通常会对原始的方法进行一定程度的封装

上一篇 下一篇

猜你喜欢

热点阅读