على السحابة، جاهزة للاستعمال
لوحة التحكم تعمل على السحابة: افتح المتصفح فتجدها. أوصِل جهازاً فيظهر في القائمة. لا تثبيت ولا ضبط ولا صيانة.
لوحة التحكم على السحابة: افتح المتصفح فتجدها جاهزة. أوصِل الجهاز فيظهر في القائمة، دون تثبيت خادم أو ضبط بيئة أو تشغيل. نفّذ المهمة مرة على الشاشة المبثوثة فتصبح سكربتاً، أو اكتبه بنفسك: البحث عن عنصر أو صورة أو نص سطر واحد فقط. ثم أرسله إلى مجموعة الأجهزة كلها.
function main() {
client.session('com.zhiliaoapp.musically'); // افتح التطبيق
// نافذة اختيارية: انتظر ثانية واحدة على الأكثر
clickElement('labelContains', 'لاحقًا', 1);
// صورة: انتظر زر الإعجاب ثم انقر عليه
if (!clickImage('btn_like.png', 5)) {
return false;
}
// نص: اقرأ الشريط العلوي
var lines = ocr([0.05, 0.1, 0.9, 0.12]);
logi(lines.text);
client.swipeUp(); // سحب يشبه اليد البشرية
return true;
}وحدة تحكم حقيقية وجهازا iPhone حقيقيان: تحكم متزامن، وتسجيل بلا كود، وساحة تجربة الكود، والجدولة.
لوحة التحكم تعمل على السحابة: افتح المتصفح فتجدها. أوصِل جهازاً فيظهر في القائمة. لا تثبيت ولا ضبط ولا صيانة.
لا حاجة إلى مطوّر. نفّذ المهمة مرة على الشاشة المبثوثة، فتتحول النقرات والسحبات والإدخال إلى خطوات، ويخرج JavaScript مقروء في الحال.
تأخذ واجهة برمجة السكربت وسائطها بالترتيب: البحث عن عنصر أو النقر على صورة أو قراءة نص سطر واحد، مثل clickElement('label', 'تسجيل الدخول'). وإذا أخطأت تعرض رسالة الخطأ السطر المصحّح.
ابحث عمّا لا تراه شجرة العناصر: مطابقة الصور بالقوالب، والبحث عن الألوان في نقطة أو عدة نقاط، والتعرّف على النص عبر Apple Vision، وكل ذلك على الهاتف نفسه دون شبكة ودون رفع لقطات الشاشة.
نقرات في نقاط عشوائية داخل منطقة، وانتظار عشوائي، وتطبيق يبدأ من حالته الأولى في كل جولة؛ ويتبع السحب مساراً كمسار اليد بانحناء خفيف وإيقاع يبدأ بطيئاً ثم يتسارع مع اهتزاز طفيف، فلا يتشابه تشغيلان أبداً.
تصل شاشة الجهاز إلى المتصفح في الوقت الحقيقي، وعبر اتصال نظير إلى نظير متى أمكن فلا تمر بالخادم؛ ويعرض الجدار مجموعة كاملة دفعة واحدة، ويمكنك النقر والسحب مباشرة على الصورة.
شغّل المزامنة فتصل العملية الواحدة إلى المجموعة كلها. تُرسَل الإحداثيات كنسب بين 0 و1 لا كبكسلات، فتعمل الأجهزة مختلفة الدقة والطراز جنباً إلى جنب.
تشغيل غير مراقَب حسب مجموعة الأجهزة وعدد المرات اليومية والنافذة الزمنية والفاصل. تُعاد كل خطوة تلقائياً، وتُستعاد مهام الجهاز الذي ينقطع وتُعاد جدولتها، ويشير السجل إلى الخطوة التي فشلت بالضبط.
انقطاع جهاز، أو عدم استجابة WDA، أو فشل المهام مرات متتالية، أو انخفاض البطارية أو المساحة: يصلك التنبيه فوراً عبر WeCom أو Telegram أو Webhook خاص بك، وترى البطارية والمساحة والحرارة بنظرة واحدة.
لا خادم لتثبيته ولا شيء لضبطه: جهاز iPhone واحد يكفي للبداية.
سجّل الدخول إلى لوحة التحكم وابدأ. وإذا كان يجب أن تبقى بياناتك في مركز بياناتك، يمكن تشغيل الخدمة كاملة على خوادمك.
ثبّت تطبيق CloudClick iOS وWebDriverAgent على جهاز iPhone وسجّل الدخول، فيظهر الجهاز في لوحة التحكم. وتتولى أداة مرافقة على Windows توقيع ملف IPA وتثبيته وتركيب صورة قرص المطوّر.
سجّل مرة على الشاشة المبثوثة، أو اكتب في ساحة تجربة الكود وجرّب كل سطر على جهاز حقيقي؛ وحين يعمل انشره مهمةً تُنفَّذ حسب مجموعة الأجهزة والنافذة الزمنية، مع سجلات تصل مباشرة.
لا حاجة. اربط شاشة الجهاز ونفّذ المهمة مرة واحدة، فتتحول النقرات والسحبات والإدخال إلى خطوات تلقائياً. وحيث ينبغي أن تتبع الخطوة عنصراً بدل إحداثي، افتح المفتّش وانقر العقدة فيُملأ تعبير التحديد وحده. والناتج JavaScript مقروء، فبإمكانك متابعة تعديله يدوياً إن شئت.
لا. الوسائط تُكتب بالترتيب وكل إجراء سطر واحد: clickElement('label', 'تسجيل الدخول') وfindImage('btn.png', 5) وocr(). وفي ساحة تجربة الكود في لوحة التحكم مرجع سريع لواجهة البرمجة وإكمال تلقائي وفاحص للعناصر، فتشغّل كل سطر على جهاز حقيقي أثناء الكتابة.
لا توجد في المسجّل إحداثيات ثابتة افتراضياً: تقع النقرات في نقطة عشوائية داخل منطقة، ويأخذ الانتظار والسحب نطاقات بدل القيم الثابتة، وينحني مسار السحب قليلاً ويبدأ بطيئاً ثم يتسارع مع اهتزاز طفيف، وتُغلق كل جولة التطبيق أولاً وتبدأ من حالته الأولى. لا يتشابه تشغيلان أبداً.
نعم. يستخدم إطار Vision المدمج من Apple على الهاتف نفسه، دون شبكة ودون رفع لقطات الشاشة، ويقرأ الصينية والإنجليزية واليابانية والكورية وغيرها (الصينية تحتاج iOS 14 أو أحدث). ولا يدعم Vision اللغة العربية حالياً. ويجري البحث عن الصور والألوان على الهاتف أيضاً.
نعم. النواة ملف تنفيذي واحد بلغة Go بربط ساكن، لا يقيّده إصدار glibc. أعطه قاعدة MongoDB، وشغّله عبر supervisor مع nginx أمامه، وتبقى البيانات والأجهزة عندكم.
نعم. المشاركة تمنح حساباً آخر صلاحية تشغيل أحد سكربتاتك، مع تاريخ انتهاء اختياري. أما المعاملات فمنفصلة، فيعمل السكربت نفسه لدى كل شخص بمجموعته الخاصة.
ليس حالياً. المنظومة تعمل على أجهزة iOS حقيقية عبر WebDriverAgent، وبيئة تشغيل السكربتات مبنية حولها. وأندرويد ليس ضمن الإصدار الحالي.
أحضر جهازاً حقيقياً واحداً وعملاً واحداً تكرره كل يوم. نربط الشاشة، ونسجّله مرة، ونشغّله مرة، أمامك. ثم قرّر بعد ذلك.