المهارات browser-automation
📦

browser-automation

آمن

بناء سكربتات أتمتة المتصفح الموثوقة

متاح أيضًا من: EmilLindfors

تضييع اختبارات المتصفح غير المستقرة ساعات في تصحيح الأخطاء. تعلم أنماط Playwright للمحددات المستقرة، والانتظار الذكي، والأتمتة المقاوملة للكشف.

يدعم: Claude Codex Code(CC)
🥉 74 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "browser-automation". الاختبار يفشل مع خطأ عدم العثور على عنصر زر تسجيل الدخول

النتيجة المتوقعة:

استبدل محدد CSS بـ getByRole: await page.getByRole('button', { name: 'Sign in' }).click(). يقوم Playwright بالانتظار التلقائي حتى يصبح العنصر قابلاً للتنفيذ.

استخدام "browser-automation". ت passent الاختبارات بشكل فردي لكن تفشل عند تشغيلها معاً

النتيجة المتوقعة:

إنشاء سياق متصفح جديد لكل اختبار باستخدام test.beforeEach مع context = await browser.newContext(). هذا يعزل ملفات تعريف الارتباط localStorage بين الاختبارات.

التدقيق الأمني

آمن
v1 • 2/25/2026

Static analysis produced false positives on markdown content. Backticks on line 71 are inline code formatting, not shell execution. No cryptographic code exists on lines 3 or 74. This is purely instructional documentation with no executable security risks.

1
الملفات التي تم فحصها
75
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

هندسة اختبار من البداية للنهاية

بناء اختبارات موثوقة من البداية للنهاية تعمل بشكل متسق في خطوط CI/CD بدون فشل غير مستقر.

أنظمة كشط الويب

إنشاء كاشطات تتعامل مع المحتوى الديناميكي وتتجنب الكشف وتعمل على المدى الطويل دون كسر.

تفاعل وكيل الذكاء الاصطناعي مع المتصفح

تمكين وكلاء الذكاء الاصطناعي من التفاعل مع واجهات الويب بشكل موثوق باستخدام استراتيجيات الانتظار والمحددات المناسبة.

جرّب هذه الموجهات

مبتدئ: إصلاح محدد الاختبار غير المستقر
لدي اختبار غير مستقر يفشل عند محاولة النقر على زر. يستخدم الاختبار محددات CSS لكن العنصر لا يُعثر عليه أحياناً. ساعدني في إعادة كتابته باستخدام المحددات التي تواجه المستخدم وأنماط الانتظار المناسبة.
متوسط: بناء عزل الاختبار
تتداخل اختباراتي مع بعضها لأنها تتشارك حالة المتصفح. أرني كيفية هيكلة مجموعة الاختبار الخاصة بي بحيث يعمل كل اختبار في عزلة تامة مع ملفات تعريف الارhasilan جديدة والتخزين والسياق.
متقدم: كشط مضاد للكشف
أحتاج إلى كشط موقع ويب يستخدم كشف الروبوتات. أرشدني عبر تنفيذ تقنيات التخفي، والتأخيرات المناسبة بين الطلبات، والتعامل مع نوافذ الحوار المنبثقة التي تظهر بشكل غير متوقع.
خبير: تصحيح فشل الاختبار بالتتبعات
يفشل اختي بشكل متقطع في CI لكنه ينجح محلياً. ساعدني في تكوين جمع التتبع، وتعيين إعدادات العرض المتسقة، وتحليل الفشل لتحديد السبب الجذري.

أفضل الممارسات

  • استخدم المحددات التي تواجه المستخدم مثل getByRole وgetByText وgetByLabel بدلاً من محددات CSS أو XPath الهشة
  • وثق بآلية الانتظار التلقائي لـ Playwright بدلاً من إضافة مهلة يدوية أو استدعاءات انتظار
  • قم بتشغيل كل اختبار في سياق متصفح جديد لضمان العزل الكامل ومنع تسرب الحالة

تجنب

  • إضافة استدعاءات انتظار عشوائية بدلاً من انتظار شروط محددة
  • استخدام محددات CSS أو XPath كأول اختيار بدلاً من المحددات الدلالية التي تواجه المستخدم
  • مشاركة سياق متصفح واحد عبر اختبارات متعددة مما يسبب تلوث الحالة

الأسئلة المتكررة

لماذا تفشل اختباراتي بشكل متقطع في CI لكنها تنجح محلياً؟
لبيئات CI خصائص توقيت مختلفة. استخدم انتظارات مناسبة حتى تصبح العناصر قابلة للتنفيذ، وفعّل جمع التتبع لتصحيح الأخطاء، وتأكد من أن كل اختبار لديه عزلة تامة.
ما هو الفرق بين محددات CSS والمحددات التي تواجه المستخدم؟
المحددات التي تواجه المستخدم مثل getByRole تعكس كيفية تفاعل المستخدمين مع تطبيقك وهي أكثر متانة أمام تغييرات واجهة المستخدم. تربط محددات CSS الاختبارات بتفاصيل التنفيذ التي قد تتغير أثناء إعادة الهيكلة.
كيف أجعل كاشطي يتجنب كشف الروبوتات؟
أضف تأخيرات واقعية بين الطلبات، واستخدم إضافات التخفي لإخفاء توقيعات الأتمتة، وتدوير وكلاء المستخدمين، وحاكي أنماط التفاعل الشبيهة بالإنسان مع حركات الماوس.
هل يجب أن أستخدم Playwright أو Puppeteer لمشروعي؟
يدعم Playwright متصفحات متعددة ولديه انتظار تلقائي مدمج. يركز Puppeteer على Chrome لكنه أخف. اختر Playwright للاختبار عبر المتصفحات، وPuppeteer لاحتياجات Chrome فقط.
كيف أتعامل مع نوافذ الحوار المنبثقة التي تظهر أثناء الاختبارات؟
انتظر حتى يظهر نافذة الحوار المنبثقة قبل تشغيل الإجراء الذي يفتحها. استخدم معالجات أحداث page.on('dialog') أو waitForEvents لالتقاط ومعالجة الحوارات بشكل صحيح.
ما حجم العرض الذي يجب أن أستخدمه للاختبار؟
قم بتعيين حجم عرض متسق عبر جميع الاختبارات باستخدام browser.newContext({ viewport: { width: 1280, height: 720 } }). يضمن هذا تخطيطات قابلة لإعادة الإنتاج ومقارنات لقطات الشاشة.

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md