您可以使用AndroidViewClient/culebra 并忘记方向、不同的屏幕尺寸等。
例如,假设我们要输入文本并在此对话框中按OK(Api Demos 的一部分)
快跑
culebra -uGo myscript.py
当窗口显示时,点击条目,输入文本,然后点击确定,此脚本将自动生成
#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
Copyright (C) 2013-2016 Diego Torres Milano
Created on 2016-06-10 by Culebra v11.5.8
__ __ __ __
/ \ / \ / \ / \
____________________/ __\/ __\/ __\/ __\_____________________________
___________________/ /__/ /__/ /__/ /________________________________
| / \ / \ / \ / \ \___
|/ \_/ \_/ \_/ \ o \
\_____/--<
@author: Diego Torres Milano
@author: Jennifer E. Swofford (ascii art snake)
'''
import re
import sys
import os
try:
sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
pass
from com.dtmilano.android.viewclient import ViewClient
TAG = 'CULEBRA'
_s = 5
_v = '--verbose' in sys.argv
kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False}
device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1)
kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True}
vc = ViewClient(device, serialno, **kwargs2)
#vc.dump(window='-1') # FIXME: seems not needed
vc.dump(window=-1)
vc.findViewByIdOrRaise("com.example.android.apis:id/username_edit").setText(u"hello culebra!")
vc.sleep(_s)
vc.dump(window=-1)
vc.findViewWithTextOrRaise(u'OK').touch()
运行时将文本设置为hello culebra!,然后点击OK。然后,您可以根据需要调整生成的脚本。
CulebraTester
CulebraTester 是 culebra 的新实现,作为在被测设备上运行的服务。
它现在处于封闭 Beta 测试阶段,但如果您有兴趣参与,您可以在 culebra.dtmilano.com 找到选择加入表格(在支持下查看)。
它的一个特点是能够检测虚拟键盘并将其与其他视图一样对待。
此屏幕截图说明了在触摸 A、b、c 和 Next(这是您要查找的内容)后生成的测试。
生成的测试是这样的
/**
* @@Test comment here@@
*
* @throws Exception
*/
@Test
public void culebraGeneratedTest() throws Exception {
mDevice.findObject(By.clazz(Pattern.compile(".*")).desc("A").pkg("com.android.inputmethod.latin")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT);
mDevice.findObject(By.clazz(Pattern.compile(".*")).desc("b").pkg("com.android.inputmethod.latin")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT);
mDevice.findObject(By.clazz(Pattern.compile(".*")).desc("c").pkg("com.android.inputmethod.latin")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT);
mDevice.findObject(By.clazz(Pattern.compile(".*")).desc("Next").pkg("com.android.inputmethod.latin")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT);
}
您可以像任何其他 UiAutomator 测试一样编译、安装和运行。
作为另一个示例,此屏幕截图显示了当您将虚拟键盘视图悬停在树中时,它们如何在设备表示中突出显示