0
자바 테스트 프레임 워크를 사용하여 많은 토스트 메시지를 처리하는 안드로이드 애플리케이션 테스트를 마쳤습니다.ADB 셸 토스트 메시지 받기
문제는 프레임 워크가 ADB 이외의 것을 사용하지 않으며 추가 라이브러리를 사용할 수 없다는 것입니다.
그래서 adb를 통해 응용 프로그램에서 구운 메시지를 가져올 방법이 있습니까? 혼자서도 수백 줄을 쓰지 않아도됩니다.
자바 테스트 프레임 워크를 사용하여 많은 토스트 메시지를 처리하는 안드로이드 애플리케이션 테스트를 마쳤습니다.ADB 셸 토스트 메시지 받기
문제는 프레임 워크가 ADB 이외의 것을 사용하지 않으며 추가 라이브러리를 사용할 수 없다는 것입니다.
그래서 adb를 통해 응용 프로그램에서 구운 메시지를 가져올 방법이 있습니까? 혼자서도 수백 줄을 쓰지 않아도됩니다.
축하 메시지는 adb shell uiautomator events
인 이벤트를 통해 명령 줄에서 확인할 수 있습니다.
try {
Process process = Runtime.getRuntime().exec("uiautomator events");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log=new StringBuilder();
String toastMessage;
while ((toastMessage = bufferedReader.readLine()) != null) {
log.append(toastMessage).append("\n");
if (toastMessage.contains(myToastStringVar)) {
Log.i("ToastMessageMatcher", "" // <-- your info message);
} else {
Log.e("ToastMessageMatcher", "" // <-- your error message);
}
}
bufferedReader.close();
process.waitFor();
System.out.println(log.toString());
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
것은이 마찬가지로 할 수있다 : 당신의 자바 테스트 프레임 워크 내에서, 그러나, 당신이 명령을 실행하면 다음과 같은 try 블록과와 비교하기 원하는 문자열을 구문 분석 코드를 재사용하는 방법을 만들 수 있습니다 귀하의 파생 상품도 직접.
이전에 시도한 결과 토스트에 표시된 메시지가 표시되지 않는다는 것을 알았습니다. 캡처 된 스크린 샷을 확인하기 위해 Tesseract OCR을 사용하여 프레임 워크를 만들었고 이제는 약 97 %의 시간이 걸렸습니다. 또한 UIautomator를 호출하면 접근성 설정을 사용하는 앱이 충돌하여 거기에서 토스트 메시지를 읽는 앱을 만드는 계획도 실패하는 것으로 나타났습니다. 답변 주셔서 감사합니다. 다른 사람에게 도움이 될 수 있습니다. –