Zidentyfikuj nazwy okien, grup i pól tekstowych Mac OS X do użycia w AppleScript

8

Mam Applescript, w którym chcę ustawić wartość pól tekstowych Namei Passwordokna należącego do procesu SecurityAgent.

Jest podobny do następującego:

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 

Podczas gdy mój skrypt odnosi się również do procesu SecurityAgent, okno to pojawia się po zamknięciu OS X, a zalogowany jest inny użytkownik. SecurityAgentOkno wyskakuje z prośbą o podanie nazwy użytkownika i hasła administratora w celu uzupełnienia zamknij proces. Nie wiem, jak odwoływać się do pól tekstowych w tym oknie.

Moje pytanie brzmi: jak znaleźć nazwę tych pól tekstowych, grupę, do której należą, i okno, do którego należą? Czy istnieje metoda mapowania okien systemu OS X, aby móc się do nich odwoływać w AppleScript? Nigdzie nie mogę znaleźć informacji na ten temat.

stefmikhail
źródło

Odpowiedzi:

9

Kiedyś próbowałem kliknąć przycisk w aplikacji Image Capture i znalezienie tego przycisku zajęło mi trochę czasu. Jak wyjaśniono w moim pytaniu / odpowiedzi, istnieje sposób, używając UIElementInspector . Możesz pobrać go bezpłatnie z Apple (link do pobrania znajduje się u góry w przycisku, bezpośredni link tutaj ).

Pozwala zajrzeć do elementów interfejsu użytkownika w każdym oknie, na którym się unosisz. Naciśnięcie Cmd- F7blokuje jego zawartość do elementu, który unosisz.

wprowadź opis zdjęcia tutaj

Część „zabawy” polega na ustaleniu, w jaki sposób pogrupowane jest okno i które elementy należą do którego rodzica. Przeglądarka interfejsu użytkownika aplikacji za 55 USD twierdzi, że robi to lepiej.

Gdy ręcznie debugujesz AppleScript i znajdujesz się w zasięgu okna, możesz spróbować zgadnąć drogę do poszczególnych elementów za pomocą poleceń takich jak:

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

Otrzymasz listę, której możesz użyć, aby zawęzić wyszukiwanie elementów i ich odpowiednich tytułów.

slhck
źródło
1
+100 za poinformowanie mnie o
UIElementInspector
@slhck - Wow! Co za fantastyczna odpowiedź. Jest to bardzo mile widziane i od razu zacznę nad tym pracować. Ciekawe, ponieważ ogólnie jestem nowy w AppleScript; Jak mam wydawać UI elementspolecenia?
stefmikhail
1
@Stef Cóż, na przykład UI Elements of window "Authenticate" of process .... Po prostu zrób to w edytorze AppleScript i spójrz na wyniki na dole. Niestety nie znalazłem bardziej skutecznego sposobu na zrobienie tego.
slhck
@slhck - Nie, nie, to brzmi idealnie. I w końcu przeglądarka interfejsu użytkownika oferuje miesięczny okres próbny z pełną funkcjonalnością, więc mogę również spróbować. Jeszcze raz wielkie dzięki.
stefmikhail
@stefmikhail Pewnie, nie ma problemu! Daj mi znać, jak działa UI Browser, nie miałem jeszcze czasu, aby go wypróbować!
slhck 16.10.11