Próbuję wejść w interakcję z oknem dialogowym drukowania za pomocą Applescript.
Chcę emulować to, że użytkownik ustawia wartość dla konkretnego menu rozwijanego.
Powiedz, że mam:
tell application "System Events"
tell process "Preview"
set value of pop up button XXX to YYY
end tell
end tell
Skąd mam znać nazwę XXX? Na przykład, jak odróżnić menu rozwijane „drukarka” od „ustawień wstępnych”?
Otworzyłem Inspektora dostępności, ale na podstawie wyświetlanych tam informacji nie mogę znaleźć odniesienia do nazwy lub innego unikalnego identyfikatora dla określonego menu rozwijanego.
Widziałem wiele osób używających liczb w celu odniesienia do różnych list rozwijanych, ale nie jestem pewien, czy to dobra praktyka. Co się stanie, jeśli Apple zdecyduje się na zamianę kolejności dwóch list rozwijanych w pewnym momencie?
Każda pomoc będzie mile widziana.
AKTUALIZACJA :
Używając 10.6.8 i inspektora zgodnie z sugestią poniżej, otrzymuję:
źródło
UI elements
polecenie stąd pomocny także: n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescriptOdpowiedzi:
AKTUALIZACJA. zadziała to w wersji 10.7.x, ale 10.6 zawiera informacje o elementach.
Przyciski (listy rozwijane) w arkuszu wydruku mają opis opisujący funkcję.
W Inspektorze dostępności ; widać to po najechaniu myszką na element (przycisk). możesz zablokować widok Inspektora dostępu za pomocą cmd + F7.
Opis zostanie wyświetlony jako AXDescription
W przypadku drukarek jest to Drukarki dla ustawień wstępnych, to jest Ustawienia wstępne
Jeśli znasz AXDescription , możesz uniknąć liczb, używając czegoś takiego. Ale to nie jedyny sposób. Tylko jeden przykład.
Aby powyższe zadziałało w tym przykładzie, arkusz wydruku musi być widoczny wraz z „Pokaż szczegóły”
Przycisk / menu rozwijane ma menu. Więc można wybrać lub kliknij go, odwołując się do elementów menu w menu przycisku.
Albo według numeru, albo przy użyciu jego tytułu / AXTitle.
Możesz skrócić powtarzalny kod, używając zmiennej dla przycisku i wywołując go. Gdy robię to tak, jak mój przykład poniżej;
źródło
Użyj jednego ze skryptów połączonych w tej podpowiedzi Mac OS X, aby znaleźć odpowiednią formę adresu: Znajdowanie elementów sterujących i elementów menu do użycia w skryptach interfejsu użytkownika AppleScript
IIRC, musisz kliknąć (cmd jest w Zdarzeniach systemowych) przycisk menu podręcznego, zanim będziesz mógł wybrać pozycję menu z jej menu.
źródło
Dla tych, którzy zastanawiają się, wydaje się, że jednym z miejsc, w którym można znaleźć Inspektora Dostępności w wersji 10.7, jest:
/Applications/Xcode.app/Contents/Applications
źródło
Niedawno napisałem swój przepływ pracy dla skryptów interfejsu użytkownika w AppleScript .
Krótko mówiąc, kluczowym składnikiem, który znacznie ułatwił mi zadanie, było nauczenie się, że
UI Elements
polecenie w AppleScript zwraca listę terminów, które Edytor AppleScript chce zobaczyć w celu wywołania elementów interfejsu użytkownika. Połącz to z warunkami widocznymi z Inspektora dostępności (które często są nieco inne), aby zbudować działający skrypt.źródło