이미지, 레이블 및 단추가있는 사용자 지정 셀이 거의없는 표를 표시하는 TableViewController를 포함하는 매우 간단한 응용 프로그램을 가지고 있습니다. 단추를 누르면 actionSheet가 표시됩니다. 그래서 내 사용자 지정 자바 스크립트 (Instruments-UIAutomation 사용)에서 내 테이블의 단추를 누르고 싶습니다. (아무 문제없이 그 작업을 수행 할 수 있습니다) actionSheet가 나타나면 단추 하나만 누르면됩니다 (취소 단추) 그것은 보여줍니다.JavaScript로 UIAutomation에서 actionSheet (및 그 버튼)에 액세스하는 방법?
그리고 제대로 수행하는 법을 모르겠습니다. 그래서 여기 내 JS 코드입니다 :
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var main = app.mainWindow();
main.tableViews()[0].cells()[1].buttons()["DetailsButton"].tap();
target.delay(5);
main.actionSheet().elements()[0].tap();
그리고 그게 내가 갖는 메시지이다 : 나는 또한 actionSheet().buttons()[0].tap();
시도했습니다
Script threw an uncaught JavaScript error: 'undefined' is not a function (evaluating 'main.actionSheet()') on line 9 of New%20Script
- 도움이 같은 오류가 계속되지 않았다.
나는 심지어 accessibleLabel의에 의해 actionSheet에 액세스하려고 :
이[actionSheet showInView:[UIApplication sharedApplication].keyWindow];
요소 계층 구조는 것 같다 :
main.actionSheet()["CellNumberSheet"].elements()[0].tap();
이 도움이 될 경우에, 그것은 내 actionSheet을 보여주는있어 방법 옳은.
웹에서 그것에 도움이되는 정보를 원하시면 ... 그래서 어떤 도움을 주시면 감사하겠습니다을 많이 찾지 못했습니다 ...
난 당신이 제안한 방법으로 actionSheet의 버튼을 누르려고 할 때 여전히 지금 ... 작동하지 않습니다하지만 이것은, 조금 더 나를 소요, 다른 오류가 나타납니다'수행 할 수 없습니다 잘못된 요소에 대한 조치 : target.frontMostApp(). actionSheet(). elements() [0]'...의 UIAElementNil 또한 checkIsValid() ','isEnabled()','isVisible()'을 actionSheet()에 적용하면 false를 반환하고,'actionSheet() .name()'은 빈 문자열을 반환합니다. 그것은 "CellNumberSheet"라는 유효한 이름을 가지고 있습니다) ... – arrteme
재미있는 점은, app.windows() [2] 사용하는 방법입니다.actionsheet에 접근하기 위해 elements() [1]? – Sugre
마지막으로 actionSheet에 액세스하도록 제안한 방법은 잘 작동하며 isVisible, checkIsValid 및 isEnabled와 같은 모든 메서드는 True를 반환합니다. actionSheet의 버튼을 탭할 수는 없지만! app.windows() [2] .elements() [1] .elements() [0] .tap()'과'app.windows() [2] .elements() [1] .buttons() [0] .tap()'. 성공하지 못하면 "잘못된 요소에 대해 작업을 수행 할 수 없습니다"라는 오류가 발생합니다. 일시적으로 솔루션을 사용하여 여기에 설명 된대로 asctionSheet 버튼을 탭합니다. http://stackoverflow.com/a/5331896/3065769 – arrteme