화면 검사와 녹화
스크린샷에서 요소를 가리키면 그 요소를 찾는 선택자와 코드가 나오고, 폰을 쓰는 동안 droidline inspect가 스크립트를 대신 써 줍니다. 선택 기능이며 내 PC 안에서만 동작합니다.
번역된 페이지입니다. 영어 문서와 내용이 다르면 영어 문서가 기준입니다. English
droidline inspect는 폰의 스크린샷과 요소 트리를 나란히 보여 주는 페이지를 브라우저에 엽니다. 요소를 누르면 그 요소를 찾는 방법을 Python, Node.js, CLI 코드와 함께 추천합니다. 녹화를 켜고 폰을 평소처럼 쓰면, 탭과 입력한 글자가 한 줄씩 스크립트가 됩니다.
선택 기능입니다. 실행하기 전에는 아무것도 바뀌지 않고, 명령이 실행 중일 때만 동작하며, 페이지는 내 PC의 Droidline 서버하고만 통신합니다.
실행하기
서버가 실행 중이어야 합니다(droidline serve). 터미널을 하나 더 열고 실행하세요.
droidline inspect
Inspector on http://127.0.0.1:8781
Open it in a browser. Stop with Ctrl+C.
그 주소를 브라우저로 여세요. 온라인인 폰이 여러 대면 위쪽에서 폰을 고른 뒤 화면 읽기를 누릅니다.
다른 포트를 쓰려면 --listen 127.0.0.1:9000처럼 넘기세요. 주소는 127.0.0.1로 두세요. 이 페이지는 폰을 보고 조작할 수 있는데 비밀번호가 없습니다.
선택자 찾기
스크린샷에서 요소를 누르거나, 요소 목록에서 행을 누르세요. 페이지가 그 요소에 테두리를 치고 속성을 보여 준 다음 찾는 방법을 보여 줍니다.
- 이 요소 하나만 맞는 방법이 먼저 나오고, 이 요소 하나만 맞음이라고 표시됩니다. 순서는 요소 찾기에서 권하는 대로입니다.
id,text,desc, 그리고 속성을 묶거나 요소가 있는 행을 쓰는 쿼리 순입니다. - 여러 요소가 맞는 방법은 맨 뒤에 나오고, 이 요소를 고르는
nth가 함께 붙습니다.
목록 위에서 명령(touch, long_touch, input, get_text)과 언어 탭을 고른 뒤 복사를 누르세요. 실행해 보기는 그 줄을 폰에서 실행하고, 화면이 멈추면 다시 읽어서 결과를 보여 줍니다.
스크립트 녹화하기
녹화 탭을 열고 녹화 시작을 누르세요. 탭에 빨간 점이 나타납니다. 폰을 평소처럼 쓰세요.
- 탭은
touch, 길게 누르기는long_touch가 되고, 누른 요소에 가장 알맞은 선택자가 붙습니다. - 입력란에 글자를 치면 마지막 글자를 담은
input한 줄이 됩니다. 그 입력란을 눌러 키보드를 띄운 탭은 빠집니다.input이 입력란을 직접 누르기 때문입니다. - 비밀번호 칸에 입력하면 입력한 글자 대신
<password>가 기록됩니다. 실제 값은 직접 넣으세요. 환경 변수에서 읽어 오는 편이 좋습니다.
스크립트는 녹화를 시작할 때 열려 있던 앱의 launch로 시작합니다. 다 했으면 녹화 중지를 누르고, 언어를 고른 뒤 복사를 누르세요.
from droidline import connect
d = connect()
d.launch("com.android.settings")
d.touch({"clickable": True, "has": {"text": "네트워크 및 인터넷"}})
d.touch("id", "search_action_bar")
d.input("id", "search_src_text", "wifi")
실행하기 전에 한 번 읽어 보세요.
- 뒤로 가기와 홈은 녹화되지 않습니다. 안드로이드가 앱에 알려 주지 않기 때문입니다. 누른 자리에
d.back()이나d.home()을 넣으세요. - 스와이프와 스크롤도 녹화되지 않습니다. 목록 아래쪽 요소를 탭하기 전에
scroll_to를 넣으세요. - 앱이 로딩하는 곳에는 기다리기를 넣으세요.
wait_idle()이나 다음 화면의 요소를 기다리는wait가 있어야 스크립트가 폰보다 앞서 나가지 않습니다.
녹화는 30분이 지나면 스스로 꺼지고, 시작을 누르기 전에는 아무것도 녹화하지 않습니다. Droidline 앱 안의 탭과 키보드 위의 탭은 건너뜁니다. 스크립트가 input으로 넣은 글자도 녹화되지 않고, 직접 입력한 글자만 녹화됩니다.
내 도구에서 녹화 쓰기
이 페이지는 record 명령과 action 이벤트를 쓰며, 직접 써도 됩니다. record(True)로 녹화를 켜고 action 이벤트를 구독하면, 이벤트마다 무엇을 누르거나 입력했는지와 그 순간의 화면 트리가 함께 옵니다. 명령어 레퍼런스의 record와 프로토콜의 이벤트를 보세요.