您可以使用AndroidViewClient/culebra,忘了方向,不同的屏幕尺寸等
舉個例子,假設我們要輸入文字,並按下OK在此對話框(API演示的一部分)
![enter image description here](https://i.stack.imgur.com/GNPEs.png)
只需運行
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.dtmilano.com(查詢支持)找到選擇參加表格。
其功能之一是能夠檢測虛擬鍵盤並將其視爲與其他視圖相同。
![enter image description here](https://i.stack.imgur.com/IvG7Y.png)
這張截圖顯示觸摸,B,C後生成的測試,以及下一步(這是你正在尋找)。
生成的測試是這樣
/**
* @@Test comment [email protected]@
*
* @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測試。
作爲一個附加的例子,這個截圖顯示瞭如何爲你懸停在樹中的虛擬鍵盤瀏覽他們在設備代表性
![enter image description here](https://i.stack.imgur.com/j2zKK.png)
哪個確定按鈕?它是您寫的一個應用程序,還是您下載的某個應用程序? – TDG
@TDG:操作系統提供的虛擬鍵盤上的標準確認按鈕。無論何時遇到文本輸入,它都會顯示在所有應用程序和系統配置中。根據上下文的不同,圖標可能會發生變化 - 如果您正在搜索鏡頭, - > |'如果您輸入了一些數據,[密碼]字段中的[確定],但含義相同,則完成文本輸入並繼續。 –
(此外,位置相同,鍵盤右下角) –