AppleScript에서 사용할 Mac OS X 윈도우, 그룹 및 텍스트 필드 이름 식별


8

텍스트 필드 NamePassword프로세스에 속하는 창의 값을 설정하려는 Applescript 가 있습니다 SecurityAgent.

다음과 유사합니다.

tell window "Authenticate" of process "SecurityAgent"
    tell group 1
        set value of text field 1 to "king"
        set value of text field 2 to "king1"
    end tell
    click button "OK" of group 2
end tell 

내 스크립트가 프로세스를 참조하는 동안 SecurityAgent문제의 창은 OS X를 종료 할 때 팝업되고 다른 사용자가 로그인 한 SecurityAgent창 입니다. 프로세스를 종료하십시오. 해당 창에서 텍스트 필드를 참조하는 방법을 모르겠습니다.

내 질문은이 텍스트 필드의 이름, 그들이 속한 그룹 및 그들이 속한 창을 어떻게 알 수 있습니까? AppleScript에서 참조 할 수 있도록 OS X 윈도우를 매핑하는 방법이 있습니까? 나는 이것에 관한 정보를 어디서나 찾을 수없는 것 같습니다.

답변:


9

한 번 이미지 캡처 응용 프로그램에서 단추를 클릭하려고했는데이 특정 단추를 찾는 데 시간이 걸렸습니다. 내 질문 / 답변에서 설명했듯이 UIElementInspector 사용하는 방법이 있습니다. Apple에서 무료로 다운로드 할 수 있습니다 (다운로드 링크는 버튼 상단에 있으며 여기 에서 직접 링크 ).

마우스를 가져가는 각 창의 UI 요소를 엿볼 수 있습니다. 누르면 Cmd- F7가리키고있는 요소에 내용이 고정됩니다.

여기에 이미지 설명을 입력하십시오

"재미있는"부분은 실제로 창을 그룹화하는 방법과 어떤 요소가 어떤 부모에 속하는지 알아내는 것입니다. 55 달러짜리 애플리케이션 UI 브라우저 는 이에 더 나은 일을한다고 주장한다.

AppleScript를 수동으로 디버깅 할 때 윈도우 범위 내에 있다면 다음과 같은 명령을 사용하여 개별 요소로가는 방법을 추측 할 수 있습니다.

UI elements of window 1
UI elements of splitter group 1 of window 1
UI elements of group 1 of splitter group 1 of window 1

이것들은 당신이 당신의 요소와 각각의 제목에 대한 검색 범위를 좁히는 데 사용할 수있는 목록을 제공합니다.


1
UIElementInspector에 대해 알려주는 +100
Nifle

@slhck-와우! 환상적인 답변입니다. 대단히 감사 드리며, 지금 바로 작업하겠습니다. 그러나 AppleScript를 처음 접했을 때 궁금합니다. 어떻게 만들 것 UI elements명령을?
stefmikhail

1
@Stef 예를 들어 UI Elements of window "Authenticate" of process .... AppleScript 편집기 에서이 작업을 수행하고 하단의 결과를 확인하십시오. 불행히도이 작업을 수행하는보다 효율적인 방법을 찾지 못했습니다.
slhck

@ slhck-아니 완벽하지 않습니다. 그리고 UI 브라우저는 한 달 전체 기능 평가판을 제공하므로 그 기능도 사용할 수 있습니다. 다시 한번 감사드립니다.
stefmikhail

@stefmikhail 물론입니다, 문제 없습니다! UI 브라우저가 어떻게 작동하는지 알려주세요. 아직 시도해 보지 못했습니다!
slhck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.