/GUI Automation with Sikuli

GUI Automation with Sikuli

قد تكون من الاشخاص الذين يحبون دائما ان تكون الــ Recycle Bin او الــ Trash خاصتهم فارغه من الملفات لكنك قد تنسى تفريغها او تكون بانتظار شخص معين ليكون متصل على احد الشبكات الاجتماعيه لتقوم بمحادثته لكن قد تنشغل في احد الامور وتريد من ينبهك…الخ

اليكم من يقوم بهذه الامور نيابة عنكم وقد تأمره ايضا بكتابة تحيه خاصه لكل شخص عندك في الاصدقاء… نتحدث اليوم عن احد ادوات الــ GUI Automation وهو الــ Sikuli  وهو احد الادوات المشوقه والبسيطة في التعامل

الـ Sikuli هو برنامج مفتوح المصدروالسهلة يستخدم للـ Automate  “تحريك” اي شئ على الشاشه من خلال التعرف على الصورعن طريق “ScreenShots” الخاص بال IDE من خلال مقارنه الصورة المعطاة بالصور التي امامه  وكتابة الاوامر و التحكم في تحرك ال Mouse وحتى ال Keyboard وايضا يستخدم لــ “Test Graphical User Interface GUI” وايضا

يستخدم في الـ Gaming للعب بدل صحاب اللعبه اليكم فيديو اخر للتوضيح

[youtube height=”HEIGHT” width=”WIDTH”]https://www.youtube.com/watch?v=ybvFItzcCfU[/youtube]

تم بداية تطويره من خلال “MIT” ثم بعد ذلك (Raimund Hocke (aka RaiMan وopen-source community

الــ Sikuli Script  يستخدم الــ Jython والتي تمكنك من الكتابة بلغه الــ Python للتفاعل مع كود الــ Java

وفيما يلي صورة موضحه لطريقة عمل الــSikuli

sikuli0

كما يمكن تحميل على الــWindows /Linux /Mac وحتى يمكن تحميله على الــ Iphone /Android للتحميل

مثال

هنا سنقوم بمثال توضيحي بسيط لكيفية عمل البرنامج وهو ان نجعل الــ Sikuli يتحكم لفتح احد Browsers  والذهاب لــhttp://www.catreloaded.org/

بعد التحميل نفتح ال Sikuli IDE ونبدأ بكتابة الاوامر المطلوبه

Sikuli1

شرح الكود

•  لكي يقوم البرنامج بالتعرف على الصور نقوم بعمل screen لتحديد الصورة المطلوبة
عند الضغط على ScreenShot تتجمد الشاشه حتى تحدد العنصر المطلوب تحديده وليكن Firefox

insertملحوظة مهمه لمستخدمي الــ windows 7 عند عمل هذه الخطوة قد يختفي البرنامج ويتوقف عن العمل تقريبا ونستغني عن هذا عن طريق استخدام برنامج الــ Snipping Tool ونقوم بتحميل الصورة عن طريق Insert image.

• من اشهر الدوال المستخدمه هي() click والــ() doubleClick وهما كما هو واضح من الاسم الاولى بالضغط مرة واحده والاخرى بالضغط مرتين ويتم كتابة ما ستنفذه الداله داخل القوسين ويكون في الدالتين السابقتين صور

• الــ () wait يقوم بأمر الانتظار حتى وقت معين او ظهور صورة تدرجها ايضا بين القوسين وهو امر مهم جدا وعدم وجوده قد يؤدي الى Errors وتقوم بكتابة الوقت بالتقريب لسرعه التحميل او من الافضل استخدام الصورة

• ومن ابرز النقاط التي تسهل التعامل مع البرنامج هي القائمة على اليسار وفيها توضيح لابرز الدوال المستخدمه وتوضيح امكانية استخدام صورة ام كتابة امر معين في الداله

• نصل لمكان الكتابة دالة () type وهي قد تستخدم فيها نص فقط او صورة لتنبيه البرنامج لمكان الكتابة مرفق النص المراد كتابته بعد الــ ,
الــ Key.ENTER قد تكتب في داله الــ type بمفردها او جمعها مع ما سبق من خلال اضافه + للاختصار

• وفي النهاية تظهر لنا الــ popup علامه على تحميل الموقع وظهوره 🙂

Success

ويحفظ العمل بامتداد( sikuli.)  يظهر كــ Folder  مكون من ال source وهو الــ python بمتداد الــ (py.) وكل الصور المستخدمه وتكون بامتداد (png.) وايضا يحفظ ملف اضافي بمتداد (HTML) لتسهل ارساله ومشاركته عبر الويب

في النهاية اليكم بعض الاعمال بالــ Sikuli واتنمى ان تكون استفدتم واستمتعم

[youtube height=”HEIGHT” width=”WIDTH”]https://www.youtube.com/watch?v=8p3ppONLy88[/youtube]

[youtube height=”HEIGHT” width=”WIDTH”]https://www.youtube.com/watch?v=t6-k6m3Qmj0[/youtube]

دمتم بخير 🙂