appium + python 的使用

UIautometer的使用
android create uitest-project -n ijkdemo -t 1 -p E:\写写代码1\ijkdemotext
adb push F:\AutoProjects\uiautomator-6\bin\uiautomator-6.jar /data/local/tmp/
adb shell uiautomator runtest ijkdemotext.jar -c ijkdemotext.ijkdemotext

用安卓sdk的工具 uiautomatorviewer 查看控件id 坐标  布局 

npm是一个node包管理和分发工具

adb devices
appium -a 127.0.0.1 -p 4723 -U  XJC6R15706000105 --no-reset、

 做一些系统环境变量的设置之后,appium服务要重启才可生效,关闭,重新打开
 Android-home 的配置
 path ,classpath的设置
 SDK看日志 adb logcat
 ANT:程序构建工具,还有maven、gradle

.Python Appium客户端库

1)锁定屏幕  driver.lock(5)
2)把当前应用放到后台去  driver.background_app(5)
3)在 iOS 上收起键盘  driver.hide_keyboard()
4)检查应用是否已经安装  driver.is_app_installed('com.example.android.apis')
5)安装应用到设备中去  driver.install_app('path/to/my.apk')
6)从设备中删除一个应用  driver.remove_app('com.example.android.apis')
7)模拟设备摇晃  driver.shake()
8)关闭应用  driver.close_app()
9)启动应用  driver.launch_app()
10)应用重置  driver.reset()
11)列出所有的可用上下文  driver.contexts
12)列出当前上下文  driver.current_context
13)将上下文切换到默认上下文  driver.switch_to.context(None)
14)获取应用的字符串:iOS 里是 Localizable.strings Android 里是 strings.xml  driver.app_strings
15)发送一个按键事件给设备  driver.keyevent(176)
16)Android only 得到当前 activity  driver.current_activity
17)生成触摸动作的接口。这部分文档很快将会补充更多的内容进来
action = TouchAction(driver)
action.press(element=el, x=10, y=10).release().perform()
18)模拟用户滑动  driver.swipe(75, 500, 75, 0, 1000)
19)在 0% 到 100% 内双指缩放屏幕  driver.pinch(element=el)
20)放大屏幕 在 100% 以上放大屏幕  driver.zoom(element=el)
21)从设备中拉出文件  driver.pull_file('Library/AddressBook/AddressBook.sqlitedb')
22)推送文件到设备中去
data = "some data for the file"
path = "/data/local/tmp/file.txt"
driver.push_file(path, data.encode('base64'))

findElementByName
findElementByAndroidUIAutomator  : UIAutomator获取控件的方式多种多样,都是通过UiSelector对象来去查找
findElementByClassName  : 可以使用UIAutomatorViewer工具直接查看
findElementById   :   可以通过UIAutomatorViewer获得
findElementByAccessibilityId:可以通过UIAutomatorViewer或者Appium Inspector获得
findEelementByXPath

UIAutomator中一些类和接口的意义

介绍一下Uiautomator中每一个类,接口,异常类的作用,方便在使用的时候具体导入哪一个包

Uiautomator类中每一个类的作用:

     com.android.uiautomator.core.UiCollection

UiCollection代表元素条目的集合,例如音乐专辑中的歌曲或邮箱收件箱列表。类似UiObject,需要指定UiSelector来构造UiCollection 用于构造UiCollectionUiSelector一般搜索容器或包裹器类的界面元素,这样的容器或包裹器类的界面元素包含其他子UI元素,例如包含子元素的布局视图。下面举例说明,下面的代码片段演示如何构造一个UiCollection实例,该实例代表一个包含在FrameLayout布局中的视频专辑

在测试时,可以调用UiDevice实例的方法来检查不同属性的状态,如当前的屏幕旋转方向货展示大小。测试代码还能使用UiDevice实例来执行设备级的操作,如强制设备横竖屏,按压d-pad硬件按钮,或按压主屏幕键和菜单键。

 

     com.android.uiautomator.core.UiObject

UiObject代表一个UI元素。为创建一个UiObject实例,使用用来描述如何搜索、选定UI元素的UiSelector.

 

     com.android.uiautomator.core.UiScrollable

UiScrollable代码可滑动的UI元素集合。可以使用UiScrollable类来模拟界面的横竖屏的滑动。该技术可以应用于界面元素隐藏在屏幕外,可以通过滑动来展示的情况下。

 

      com.android.uiautomator.core.UiSelector

代表一种搜索标准,可以在当前展示界面上查询和获取特定元素的句柄。若找到多于一个的匹配元素,则返回布局层次结构上的第一个匹配元素作为目标UiObject。当构造一个UiSelector对象时,可以使用链式调用多个属性来缩小查询范围。如无匹配元素,则返回异常UiAutomatorObjectNotFoundException。你还可以使用childSelector() 方法来嵌套多个Uiselector实例。例如。下面的代码演示如何制定查询来定位在当前界面的第一个ListView,然后在返回的ListView内定位一个带有Apps文本属性的界面元素。

 

      com.android.uiautomator.core.Configurator

运行uiautomator测试程序时设置主要的参数。

 

Uiautomator接口中每个接口的作用:

com.android.uiautomator.core.UiWatcher

代表待测设备上的条件监听器

 

com.android.uiautomator.testrunner.IAutomationSupport

提供运行测试的辅助支持

 

com.android.uiautomator.testrunner.UiAutomatorTestCase

定义运行多个测试用例时的环境。所有的uiautomator测试用例都需要集成该类。

 

Exception 异常         

com.android.uiautomator.core.UiObjectNotFoundException

UiSelector不匹配当前屏幕的界面元素时,抛出异常


滚动到某个对象 UiScrollable 的使用 

返回值                API                     说明

boolean       scrollIntoView(UiSelector selector) 滚动到条件元素所在位置,并且尽量让其居于屏幕中央

boolean       scrollIntoView(UiObject obj)       滚动到对象所在位置,并且尽量让其居于屏幕中央

boolean       scrollTextIntoView(String text)    滚动到文本对象所在位置,并且尽量让其居于屏幕中央

boolean      scrollDescriptionIntoView(String text)滚动到描述所在位置,并且尽量让其居于屏幕中央

boolean      scrollToBeginning(int maxSwipes)     自定义次数滚动到开始位置

boolean      scrollToBeginning(int maxSwipes,int steps)  自定义次数和步长滚动到开始位置

boolean      scrollToEnd(int maxSwipes,int steps)        自定义次数和步长滚动到结束位置  

boolean      scrollToEnd(int maxSwipes)            自定义次数滚动到结束位置

例子:

UiScrollable scoll=new UiScrollable(new UiSelector().className("android.widget.ListView"));

UiSelector selector=new UiSelector().text("糖糖");

scroll.scrollIntoView(selector);

UiOject obj=new UiObject(selector);

scroll.scrollIntoView(obj);


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值