SikuliX: أتمتة واجهات المستخدم بالتعرف البصري

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

SikuliX في Python: دليل شامل لأتمتة الواجهات بالتعرف البصري

مقدمة عن SikuliX

أتمتة واجهات المستخدم، خاصة في غياب واجهات برمجة التطبيقات (API)، تتطلب حلولاً مبتكرة. يُعد التعرف البصري على العناصر من أكثر الطرق فعالية لحل هذه المشكلات. يمثل SikuliX أداة أتمتة فريدة تتيح لك التحكم في تطبيقات واجهات المستخدم الرسومية (GUI) بالاعتماد على قوالب بصرية (لقطات شاشة للعناصر) بدلاً من بنية DOM أو واجهات API المتاحة.

تم تطوير SikuliX في الأصل بلغة Java، ولكن يمكن استخدامه بنجاح مع Python عبر Jython أو الاستدعاءات الخارجية عبر subprocess. توفر المكتبة أدوات قوية للبحث البصري، والنقر، والانتظار، والتفاعل مع أي عناصر واجهة ممثلة كصور.

ما هو SikuliX وكيف يعمل

SikuliX هي مكتبة أتمتة مفتوحة المصدر تستخدم تقنية التعرف على الصور للتفاعل مع عناصر الواجهة الرسومية. على عكس أدوات الأتمتة التقليدية التي تعتمد على محددات العناصر أو واجهات API، يعمل SikuliX على مستوى البكسلات في الشاشة.

الميزات الرئيسية لـ SikuliX:

  • التعرف البصري: يستخدم OpenCV للبحث عن الصور على الشاشة
  • التوافق مع المنصات: يعمل على Windows وmacOS وLinux
  • الاستقلال عن التقنيات: يمكنه أتمتة أي تطبيقات، بما في ذلك سطح المكتب والويب والتطبيقات المحمولة
  • سهولة الاستخدام: واجهة برمجية بديهية للتعلم السريع

تثبيت وإعداد SikuliX

المتطلبات النظامية

للعمل مع SikuliX، تحتاج إلى:

  • Java 8 أو إصدار أحدث
  • Python 2.7 أو 3.x (للتكامل)
  • ذاكرة وصول عشوائي كافية لمعالجة الصور (يوصى بحد أدنى 2 جيجابايت)

عملية التثبيت

يتم توزيع SikuliX كتطبيق Java ولا يمكن تثبيته عبر pip. للتثبيت:

  1. قم بتنزيل أحدث إصدار من sikulixide.jar من الموقع الرسمي sikulix.com
  2. تأكد من تثبيت Java بشكل صحيح
  3. قم بإعداد التكامل مع Python (عبر Jython أو subprocess)

تشغيل SikuliX من Python

import subprocess
import os

# تشغيل SikuliX IDE
subprocess.run(["java", "-jar", "sikulixide-2.0.5.jar"])

# تنفيذ سكريبت جاهز
subprocess.run(["java", "-jar", "sikulix.jar", "-r", "myscript.sikuli"])

الهيكل والمفاهيم الأساسية

النموذج الكائني لـ SikuliX

يعتمد SikuliX على عدة مفاهيم رئيسية:

Screen (الشاشة) — يمثل الشاشة بأكملها أو شاشة معينة. وهو الكائن الأساسي للتفاعل مع الواجهة.

Region (المنطقة) — منطقة مستطيلة من الشاشة يتم فيها تنفيذ عمليات البحث والتفاعل. استخدام المناطق يسرّع عمل السكريبت بشكل كبير.

Pattern (النمط) — كائن صورة مع معلمات إضافية، مثل دقة التطابق وإزاحة النقر.

Match (التطابق) — نتيجة البحث عن الصورة، وتحتوي على الإحداثيات ودرجة التطابق.

مبدأ عمل التعرف البصري

يستخدم SikuliX خوارزميات الرؤية الحاسوبية لمطابقة قوالب الصور مع محتوى الشاشة. تتضمن العملية:

  1. التقاط لقطة شاشة للشاشة أو المنطقة
  2. مقارنة النمط مع أجزاء مختلفة من لقطة الشاشة
  3. حساب معامل التشابه
  4. إرجاع إحداثيات أفضل تطابق

التكامل مع Python

الاستخدام عبر Jython

يتيح Jython تنفيذ كود Python مباشرة داخل JVM، مما يوفر وصولاً مباشراً إلى مكتبات Java الخاصة بـ SikuliX:

توصيات