Як дізнатися назву елементів інтерфейсу користувача за допомогою інспектора доступності (або будь-якого іншого інструменту)


21

Я намагаюся взаємодіяти з діалоговим вікном друку через Applescript.

Що я хочу наслідувати, - це користувач, який встановлює значення для певного спадного меню.

Скажіть, у мене є:

tell application "System Events"
  tell process "Preview"
    set value of pop up button XXX to YYY
  end tell
end tell

Як я повинен знати ім’я XXX? Наприклад, як я можу розрізнити спадні "принтер" та "попередньо встановлені"?

Я відкрив Інспектор доступності, але з інформації, що відображається там, я не можу помітити посилання на ім’я чи інший унікальний ідентифікатор для вказаного спаду.

Я бачив, як багато людей використовують номери для позначення різних спадних місць, але я не впевнений, що це хороша практика. Що станеться, якщо Apple вирішить змінити порядок двох спасних місць у якийсь момент?

Будь-яка допомога буде вдячна.

ОНОВЛЕННЯ :

Використовуючи 10.6.8 та інспектор, як запропоновано нижче, я отримую наступне:

введіть тут опис зображення


Я також вважаю, що UI elementsкоманда звідси корисна: n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescript
phs

Ось посилання на іншу сторінку в Ask Different, яка пов’язана з поточною сторінкою, під назвою: AppleScript - Як я можу програмно отримати імена, атрибути, властивості та класи елементів інтерфейсу без “здогадувань” через Інспектор доступності? (Це питання тут було причиною, чому я хотів дізнатися основні факти на тему "Як" ...)
clemsam lang

Відповіді:


15

ОНОВЛЕННЯ. це буде працювати в 10.7.x, але в 10.6 є інформація про елемента.

Кнопки (спади) в аркуші друку мають Опис для опису функції.

У Accessibility інспектора ; ви це бачите, коли наведіть курсор миші на елемент (кнопку). ви можете заблокувати вигляд інспектора доступності за допомогою cmd + F7.

Опис буде вказано як AXDescription

введіть тут опис зображення

У випадках із принтерами це - Printers for Presets, це Presets

Якщо ви знаєте AXDescription, ви можете уникнути чисел, використовуючи щось подібне. Але це не єдиний спосіб. Лише один приклад.

activate application "Preview"
tell application "System Events"
    tell process "Preview"
        click ((pop up buttons of sheet 1 of window 1) whose description is "Printers")
    end tell
end tell

Для роботи вище в цьому прикладі аркуш друку повинен бути видимим разом із "Показати деталі"

Кнопка / випадаюче меню має меню. Таким чином , ви можете вибрати або клацнути його, посилаючись на пункти меню в меню кнопки.

Або за номером, або за допомогою назви / AXTitle.

activate application "Preview"
    tell application "System Events"
        tell process "Preview"
            click ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

click menu item "Last Used Settings" of menu of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")
        end tell
    end tell

Ви можете скоротити повторюваний код, використовуючи змінну для кнопки та викликавши її. Роблячи це як мій приклад нижче;

   activate application "Preview"
tell application "System Events"
    tell process "Preview"
        set Presets_button to item 1 of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

        click Presets_button
        click menu item "Last Used Settings" of menu of Presets_button
    end tell
end tell

5

Використовуйте один із сценаріїв, пов'язаних у цій підказці Mac OS X, щоб знайти відповідну форму адреси: Пошук елементів керування та меню для використання в сценарії користувальницького інтерфейсу AppleScript

IIRC, вам потрібно буде натиснути кнопку (cmd знаходиться в системних подіях) кнопку спливаючого меню, перш ніж ви зможете вибрати пункт меню з його меню.


4

Для тих, хто цікавиться, здається, що в одному місці, де знайти Інспектора доступності в 10.7, є:

/Applications/Xcode.app/Contents/Applications


1

Нещодавно я записав свій робочий процес для сценаріїв інтерфейсу в AppleScript .

Коротше кажучи, ключовим компонентом, який значно полегшив мені, стало те, що UI Elementsкоманда в AppleScript повертає список термінів, які AppleScript Editor хоче бачити, щоб викликати елементи інтерфейсу. Інтерфейсуйте це з умовами, винесеними з Інспектора доступності (які часто дещо відрізняються) для створення робочого сценарію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.