
بقلم: يوسف | محرر أدوات الذكاء الاصطناعي · صوت تحريري بإشراف بشري
كتابة محدد CSS دقيق لعنصر داخل صفحة ويب متغيرة البنية هي من أكثر المهام إزعاجاً في تطوير الاختبارات الآلية وبناء أدوات استخراج البيانات — تكتبه اليوم ويتوقف غداً لأن الصفحة تغيّرت. Selector Forge من شركة Intuned تطرح حلاً مختلفاً: إضافة متصفح مستقلة تشير فيها إلى العنصر الذي تريده، فتقترح الذكاء الاصطناعي المحددات المرشحة، تختبرها فعلياً على DOM الحي، وتعرض عليك فقط ما نجح في التحقق.
الإضافة متاحة الآن على Chrome Web Store وFirefox Add-ons، وتعمل بمعيار MV3. المنطق الداخلي يقوم على حلقة تحقق مستمرة: الذكاء الاصطناعي يقترح ويرتّب المحددات المرشحة، لكنه لا يملك الكلمة الأخيرة أبداً — المتصفح هو مصدر الحقيقة الوحيد، وأي محدد لا يُحل بدقة على الصفحة الفعلية يُستبعد تلقائياً.
تعمل الإضافة بنمطين للاختيار: النمط الأول للعناصر الفردية كالأزرار والمدخلات والروابط والتسميات، حيث تنقر على عنصر واحد فتحصل على مجموعة محددات مرشحة موثّقة لذلك العنصر تحديداً. النمط الثاني مخصص للقوائم المتكررة، حيث تختار مثالين من مجموعة متكررة فيستنتج النظام محدد الحاوية للمجموعة كاملة ويعرض معاينة قبل الحفظ — مع التحقق من عدم الإفراط في المطابقة أو التقصير فيها.
آلية العمل تمر بست مراحل متسلسلة:
- تفتح أي صفحة وتضغط على أيقونة الإضافة لتفعيل وضع الاختيار.
- تختار نمط الاختيار (عنصر واحد أو قائمة) ثم تنقر مباشرةً على العنصر المطلوب في الصفحة الحية.
- تلتقط الإضافة لقطة مضغوطة تضم العناصر المحددة وسياق DOM والمرشحين الأوليين، وترسلها إلى الخلفية.
- يقترح الـ backend المدار من Intuned محددات مرشحة ويرتّبها، فيما تختبر الإضافة كل مرشح على DOM الحية وتعيد النتائج.
- تتكرر هذه الحلقة حتى يستقر النظام على المحدد الفائز.
- تعرض نافذة الإضافة المحددات الموثّقة فقط، مع زر نسخ لكل منها.
للمطورين الراغبين في بناء الإضافة أو تطويرها، يتطلب المشروع Node 18 أو أحدث وYarn. يبدأ الإعداد بـ yarn install ثم yarn dev لإطلاق بيئة المراقبة وتحميل الإضافة من .output/chrome-mv3. يدعم المشروع WXT مع React للواجهة، ويوفر ثلاث طبقات للاختبار: اختبارات وحدة سريعة بـ Vitest على منطق المحددات والحالة والتخزين، واختبارات متصفح تشغّل توليد المحددات على DOM حقيقي وتتحقق من دقة النتائج — وهي طبقة التحقق الأساسية من الصحة — وأخيراً اختبارات E2E بـ Playwright على الإضافة المحزومة بالكامل مع تدفق مؤشر الفأرة والنافذة المنبثقة وسكريبت المحتوى والـ background worker. يدعم المشروع كذلك أداة Ladle لمعاينة مكونات React في عزل تام دون الحاجة لإعادة تحميل الإضافة.
خارطة الطريق تكشف عن طموح أوسع من مجرد توليد المحددات. الفريق يعمل على دمج CLI يتيح قيادة الإضافة من سطر الأوامر عبر بروتوكول MCP، مع دعم وكلاء محليين لتشغيل الاختبارات الآلية — والأساس التقني لهذا متوفر بالفعل من خلال صلاحية `tabs` وجلسات CDP. كذلك في الطريق نمط “smart picker” يتيح تحديد عناصر متعددة في خطوة واحدة مع تجميعها آلياً، وميزة AI field detection تقترح أسماء الحقول ومحدداتها تلقائياً للصفحة كاملة. الأكثر أهمية للمطورين الراغبين في الاستقلالية التامة: يخطط الفريق لإطلاق backend قابل للاستضافة الذاتية يستبدل خدمة Intuned بالكامل، بما فيها وكيل مفتوح المصدر لتوليد المحددات والحكم عليها على البنية التحتية الخاصة. على المدى البعيد: تصدير إلى Playwright أو JavaScript خام، واكتشاف pagination تلقائي، ودعم cross-iframe وshadow DOM.
القيد الرئيسي حالياً واضح: الإضافة تعتمد على خلفية Intuned للمصادقة وتوليد المحددات، ما يعني ارتباطاً بخدمة خارجية حتى يُطلق الـ backend المستضاف ذاتياً. لمن يبني scrapers حساسة أو اختبارات إنتاجية، هذا قيد يستحق الأخذ بعين الاعتبار قبل الدمج الكامل. المشروع مرخص بـ MIT من The Metrics Shop, Inc.
GitHub (Intuned/selector-forge)







