Erişilebilirlik denetçisini (veya başka bir aracı) kullanarak UI öğelerinin adını nasıl öğrenebilirim?


21

Applescript aracılığıyla bir yazdırma iletişim kutusuyla etkileşime girmeye çalışıyorum.

Ne taklit etmek istiyorum kullanıcı belirli bir açılır menüde bir değer ayarlama.

Diyelim ki:

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

XXX adını nasıl bilebilirim? Örneğin, "yazıcı" ve "ön ayarlar" açılır listelerini nasıl ayırt edebilirim?

Erişilebilirlik Denetçisini açtım, ancak burada görüntülenen bilgilerden, belirtilen açılır liste için ada veya başka bir benzersiz tanıtıcıya başvuru yapamıyorum.

Farklı açılır listeye başvurmak için sayı kullanan birçok kişi gördüm, ancak bunun iyi bir uygulama olduğundan emin değilim. Apple bir noktada iki açılır menü sırasını değiştirmeye karar verirse ne olur?

Herhangi bir yardım mutluluk duyacağız.

GÜNCELLEME :

Aşağıda önerildiği gibi 10.6.8 ve müfettişi kullanarak aşağıdakileri alıyorum:

resim açıklamasını buraya girin


UI elementsKomutu buradan da yararlı buldum : n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescript
phs 5

Burada başka bir sayfaya bir bağlantı içinde farklı sor : denilen geçerli sayfaya, bağlı olan nasıl Erişilebilirlik Müfettiş aracılığıyla ‘tahmin’ olmadan programlı UI elemanların isimleri, özelliklerini, özelliklerini, sınıfları alabilirsiniz - AppleScript? (Buradaki soru, "Nasıl yapılır" hakkında bazı temel bilgileri öğrenmek
istememin sebebiydi.

Yanıtlar:


15

GÜNCELLEME. bu 10.7.x içinde çalışır ancak 10.6'da les element bilgisi bulunur.

Yazdırma Sayfasındaki Düğmeler (açılır menüler) işlevi açıklamak için Açıklama'ya sahiptir.

In Erişilebilirlik denetçisi ; fareyi öğenin (düğme) üzerine getirdiğinizde bunu görürsünüz. Erişilebilirlik denetçisinin görünümünü cmd + F7 ile kilitleyebilirsiniz .

Açıklama AXDescription olarak listelenecektir

resim açıklamasını buraya girin

Yazıcılar söz konusu olduğunda bu, Önayarlı Yazıcılardır Önayarlardır

Eğer AXDescription biliyorsanız böyle bir şey kullanarak sayıları önleyebilirsiniz. Ama bu tek yol değil. Sadece bir örnek.

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

Yukarıdakilerin bu örnekte çalışması için, Baskı Sayfası 'Ayrıntıları Göster' ile birlikte görünür olmalıdır

Düğmenin / açılır menünün bir menüsü vardır. Yani seçmek veya bakarak bunu tıklayabilirsiniz menü öğeleri arasında menü düğmesinin.

Ya numaraya göre ya da / AXTitle başlığını kullanarak.

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

Düğme için bir değişken kullanarak ve çağırarak yinelenen kodu kısaltabilirsiniz. Aşağıdaki örneğim gibi yaptığımda;

   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


4

Merak edenler için, 10.7'de Erişilebilirlik Müfettişini bulabileceğiniz bir yer:

/Applications/Xcode.app/Contents/Applications


1

Son zamanlarda AppleScript'te UI Scripting için iş akışımı yazdım .

Kısacası, işleri benim için çok daha kolay hale getiren temel bileşen, UI ElementsAppleScript'teki komutun AppleScript Editor'ın UI Öğelerini çağırmak için görmek istediği terimlerin bir listesini döndürdüğünü öğrenmekti . Bunu, çalışan bir komut dosyası oluşturmak için Erişilebilirlik Denetçisi'nden (genellikle biraz farklıdır) görülen terimlerle arayüzleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.