2014-09-15 3 views
2

UI 자동화를 위해 안드로이드 버전 4.4.2 및 파이썬 2.7을 사용하고 있습니다.android view client 메시지에 쿼티 키보드를 캡처 할 수 없습니다.

UI 자동화 도구/culebra/dump를 사용하여보기를 캡처하려고하면 QWERTY 키패드보기를 캡처 할 수 없습니다. 이 부분을 도와주세요

qwerty 키패드를 터치하고 입력해야하므로 영숫자 텍스트와 스마일 문자를 입력 할 수 있어야합니다. 또한 입력 한 후에는 화면에 표시되는 내용이 입력하려는 내용인지 확인해야합니다.

미리 감사드립니다.

답변

0

다른 대답으로, AndroidViewClientUiAutomator 백엔드는 기본 창 이외의 내용을 덤프 할 수 없으므로 입력기 창이 액세스 할 수없는 이유는 다음과 같습니다.

ViewServer과 같은 다른 백엔드를 지원합니다. AndroidViewClient 소스 (특히 dump-all-windows.py)와 함께 제공되는 예제를 살펴볼 수 있습니다.이 예제에서는 주요 윈도우뿐만 아니라 다른 윈도우의 내용도 덤프하는 방법을 보여줍니다. 키보드의 대부분의보기를 가져올 수 있지만 실제 키는 내부적으로 com.android.inputmethod.keyboard.internal.PreviewPlacerView으로 처리되므로 개별 키와 상호 작용할 수 없습니다.

는 항상 768x1280 에뮬레이터에 G을 만지지 것이라고

if device.isKeyboardShown(): 
    device.touch(400, 950) 

에서처럼 자신의 좌표를 사용하여 키를 만질 수 있음을 기억하십시오. 그러나 이것은 장치에 따라 다릅니다.

0

QWERTY 키보드는 webview이며 UiAutomator는 현재 webview를 지원하지 않습니다. AndroidViewClient는 UiAutomator를 기반으로하므로 키보드를 캡처하지 않습니다.

텍스트를 입력하는 것이 목적이라면 먼저 텍스트 필드에 포커스가 있는지 감지 한 다음 device.type('your_text')을 사용하십시오.

0

당신은 키보드에서 문자를 눌러 의도를 사용하는 경우 :

키 코드에서 얻을 수 있습니다
getDevice().pressKeyCode(KeyEvent.<KeyCode>) 

: http://developer.android.com/reference/android/view/KeyEvent.html 하지만 당신은 문자로 문자열을 변환하고를 얻기 위해 각 문자를 통과하기 위해 필요한이 작업을 수행하기 전에 그 때문에 KeyEventCode.

0
can perform: 
typeInDevice("Any text") 
or 
typeInView("ViewId/content/text where you want to enter text","Any text") 

device accessibility can be as your requirement .. 
self.typeInDevice() 
or 
vc.typeInDevice() 

Verification : 
isKeyboardShown(): can be used for verifying that the keyboard 
is appeared. 
the entered text can be retrieved by using gettext() and same can be 
compared with the entered value. 
관련 문제