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


8

텍스트 필드 Name와 Password프로세스에 속하는 창의 값을 설정하려는 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.