문제

기기의 uiautomation 도구를 사용하고 있으므로 다음과 같은 정보가 필요합니다.

1) 데이터를 역동적으로 공급하는 절차가 있습니까? 예를 들어,이 스크립트를 사용하여 텍스트 필드에 대한 다른 데이터를 테스트 해야하는 경우 하드 코딩 된 텍스트 필드 값에 대한 스크립트를 수정하지 않고 어떻게 달성 할 수 있습니까? JavaScript의 수동 루프를 통해 사용하고 싶지 않습니까? JavaScript가 텍스트 필드 값 목록을 가져갈 SQLITE를 사용할 수 있습니까? 나는 iOS의 악기의 새로운 uiautomation입니다. 다음 줄은 스크립트의 첫 번째 명령입니다.

        UIATarget.localTarget().frontMostApp().mainWindow().textFields()["username"].setValue("test");

그러나 실제 스크립트를 변경하지 않고 터미널을 통해 다음 명령에 setValue를 제공하고 싶습니다.

  instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <full_path_to_application> -e UIASCRIPT <path_to_script.js> -e UIARESULTSPATH <output_results_path>

누구든지 위의 명령을 통해 setValue를 제공하는 방법을 도울 수 있습니까? 스크립트를 수동으로 변경하지 않고 사용자 이름에 대한 setValue를 동적으로 동적으로 제공하는 모든 방법이 있습니까?

2) uiautomation의 JavaScript를 통해 화면의 구성 요소와 속성을 확인할 수 있습니까?

도움이 되었습니까?

해결책

1. 예. 데이터에서 JavaScript 코드를 생성하고 명령 줄에서 악기를 호출하는 시스템 수준 스크립트를 작성해야합니다. 샘플 스크립트는 다음과 같습니다.

#!/bin/bash
echo 'var thisIsAGeneratedInput = "Sample Input variable";' > input.js
instruments -t test.tracetemplate your_app_with_path.app -e UIASCRIPT test.js

"test.js"파일은 다음과 같아야합니다.

#import "input.js"
UIALogger.logMessage(thisIsAGeneratedInput);

2. 함수 value() 요청 된 정보를 얻는 올바른 방법입니다. name() 주어진 경우 접근성 ID를 반환합니다. 참고 : Xcode 5에서 value() 작동하지 않을 수도 있습니다, 사용 name() 해결 방법은 있지만 버전 5 이전에는 괜찮 았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top