سؤال

لست متأكدًا مما إذا كان هذا قادرًا على القيام بذلك عبر Applescript و/أو Automator ... ولكن أود أن أكون قادرًا على:

أ) قم بتشغيل تطبيق (أعلم أنه يمكن القيام بذلك بسهولة عن طريق Applescript أو Automator)

ب) بمجرد إطلاق التطبيق ، استخدم Applescript أو Automator لتحديد عناصر قائمة محددة.

على سبيل المثال ، أود تشغيل Excel 2008 (لدي إصدار المنزل/الطالب الذي لا يتم تكوينه مسبقًا لـ Automator) ثم انقر فوق قائمة "File" وانقر فوق "Open".

أي مؤشرات على أين تذهب/البحث عن كيفية تحديد عناصر القائمة مثل هذا (أو إذا كان ذلك ممكنًا على الإطلاق)؟

يمكنك "نوعًا ما" القيام بذلك باستخدام وظيفة سجل Automator ، ولكن السجل هش للغاية.

أفضل أن أكون قادرًا على استخدام Applescript للاستيلاء على "صفيف" يحتوي على كل عنصر قائمة للتطبيق ثم النقر برمجياً على عنصر القائمة 0 في صفيف بلدي ... إلخ. إلخ.

هل هذا ممكن؟

تيا

هل كانت مفيدة؟

المحلول

لا أعرف عن الاستيلاء على صفيف ، لكن هذا يبدو أنه قد يعمل لإرسال نقرات الماوس ، إلخ:

الافتراضية

نصائح أخرى

tell application "###"

activate

end tell


tell application "System Events"

tell process "###"

click menu item "^^^" of menu "$$$" of menu bar 1

end tell

end tell

ضع التطبيق الخاص بك للحصول على ### ووضع عنصر القائمة الخاص بك في ^^^ وضع القائمة الخاصة بك (الملف ، تحرير ، عرض ، إلخ) في $$$. الرسملة المسائل.

ضعه في Applescript راجع للشغل

مثال:

tell application "iTunes"

activate

end tell


tell application "System Events"

tell process "iTunes"

click menu item "as list" of menu "view" of menu bar 1

end tell

end tell

احذف المساحات المزدوجة إلا بين النهاية TELL و TELL "أحداث النظام"

البرمجة النصية واجهة المستخدم هي وحش متقلب. إنها هشة وغالبًا ما تكون حساسة للعديد من الأشياء التي تتجاوز سيطرتك مثل الحوارات غير المتوقعة (من التطبيقات الأخرى) ، والتغييرات في خط النظام أو اللغة ، أو نشاط المستخدم. ناهيك عن التغييرات في واجهة مستخدم التطبيق عبر الإصدارات.

من الأكثر قوة استخدام Talk مباشرة إلى التطبيق عبر API Applescript. هذا هو بالضبط الغرض من Applescript. يمكنك دائمًا رؤية الإجراءات والبيانات التي يمكن أن يقدمها التطبيق عبر Applescript عبر عنصر القائمة "Open Dictionary ..." في محرر Applescript.App (حدد التطبيق الذي تريد البرنامج النصي في مربع الحوار). بدلاً من محاكاة الماوس ، انقر فوق قائمة ، يمكنك الاتصال بالإجراء الذي يتم تشغيل عنصر القائمة مباشرة عبر Applescript.

بالطبع ، ليس كل التطبيقات لديها واجهة برمجة تطبيقات كاملة (أو حتى أي). ومع ذلك ، فإن Excel لديه دعم ممتاز للتفاح ، إذا كان هذا هو هدفك.

إذا كنت تحاول حقًا إجراء اختبار واجهة المستخدم ، فإنني أوصي أن تبدأ بخيارات أخرى:

  1. اختبر النموذج (مماثل لبرمجة نموذج التطبيق عبر Applescript). في الواقع ، إذا قمت بتضمين واجهة برمجة تطبيقات Applescript في تطبيقك ، فيمكنك اختبار API الآلي أيضًا.
  2. يستخدم أدوات Google لـ Mac's إضافات اختبار الوحدة (أو لفة الخاصة بك) لإرسال أحداث الماوس أو لوحة المفاتيح برمجيا إلى تطبيقك.
  3. استخدم Instruments.App لتسجيل تسلسل واجهة المستخدم. تسجيل الأدوات صلب (لم أستخدم ميزة سجل Automator) ، وستحصل على جميع الأشياء الجيدة الأخرى للأدوات أيضًا.

في الواقع ، البرمجة النصية واجهة المستخدم هشة وصادقة ، لكنك قد تلقي نظرة على Apple's صفحة البرمجة البرمجية لبرنامج Applescript GUI

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top