سؤال

بينما أستخدم أداة uiautomation للأدوات ، أحتاج إلى معلومات في ما يلي:

1) هل هناك أي إجراء لبيانات giviing ديناميكيا. على سبيل المثال ، إذا كنت بحاجة إلى استخدام هذا البرنامج النصي لاختبار بيانات مختلفة لـ Textfield ، كيف يمكنني تحقيق ذلك دون تعديل البرنامج النصي لقيمة ملعب النص المتشددين؟ لا أريد أن أفعل من خلال حلقة يدوية في JavaScript؟ هل من الممكن استخدام SQLite من خلاله سيأخذ JavaScript قائمة بقيم Textfield؟ أنا جديد uiautomation في الأدوات في iOS.The السطر التالي هو أول أمر في البرنامج النصي

        UIATarget.localTarget().frontMostApp().mainWindow().textFields()["username"].setValue("test");

لكني أريد أن أعطي setValue في الأمر التالي من خلال Terminal دون تغيير البرنامج النصي الفعلي

  instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <full_path_to_application> -e UIASCRIPT <path_to_script.js> -e UIARESULTSPATH <output_results_path>

يمكن لأي شخص المساعدة في كيفية إعطاء setValue من خلال الأوامر أعلاه dyanmically؟ هل هناك أي طريقة أخرى لإعطاء setValue لاسم المستخدم ديناميكيًا دون تغيير البرنامج النصي يدويًا؟

2) هل من الممكن التحقق من مكونات وسمات الشاشة من خلال JavaScript في Uiautomation؟

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

المحلول

1. نعم. يجب عليك كتابة برنامج نصي على مستوى النظام يقوم بإنشاء رمز JavaScript من البيانات واتصال الأدوات من سطر الأوامر. نموذج البرنامج النصي هو:

#!/bin/bash
echo 'var thisIsAGeneratedInput = "Sample Input variable";' > input.js
instruments -t test.tracetemplate your_app_with_path.app -e UIASCRIPT test.js

يجب أن يبدو ملف "test.js" مثل:

#import "input.js"
UIALogger.logMessage(thisIsAGeneratedInput);

2. الوظيفة value() هي الطريقة الصحيحة للحصول على المعلومات المطلوبة ، name() إرجاع معرف إمكانية الوصول إذا أعطيت. ملاحظة: في Xcode 5 value() قد لا تعمل, ، استعمال name() للتسلل ، ولكن قبل الإصدار 5 كان الأمر على ما يرام.

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