تضييع اختبارات المتصفح غير المستقرة ساعات في تصحيح الأخطاء. تعلم أنماط Playwright للمحددات المستقرة، والانتظار الذكي، والأتمتة المقاوملة للكشف.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "browser-automation". الاختبار يفشل مع خطأ عدم العثور على عنصر زر تسجيل الدخول
النتيجة المتوقعة:
استبدل محدد CSS بـ getByRole: await page.getByRole('button', { name: 'Sign in' }).click(). يقوم Playwright بالانتظار التلقائي حتى يصبح العنصر قابلاً للتنفيذ.
استخدام "browser-automation". ت passent الاختبارات بشكل فردي لكن تفشل عند تشغيلها معاً
النتيجة المتوقعة:
إنشاء سياق متصفح جديد لكل اختبار باستخدام test.beforeEach مع context = await browser.newContext(). هذا يعزل ملفات تعريف الارتباط localStorage بين الاختبارات.
التدقيق الأمني
آمن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.
درجة الجودة
ماذا يمكنك بناءه
هندسة اختبار من البداية للنهاية
بناء اختبارات موثوقة من البداية للنهاية تعمل بشكل متسق في خطوط CI/CD بدون فشل غير مستقر.
أنظمة كشط الويب
إنشاء كاشطات تتعامل مع المحتوى الديناميكي وتتجنب الكشف وتعمل على المدى الطويل دون كسر.
تفاعل وكيل الذكاء الاصطناعي مع المتصفح
تمكين وكلاء الذكاء الاصطناعي من التفاعل مع واجهات الويب بشكل موثوق باستخدام استراتيجيات الانتظار والمحددات المناسبة.
جرّب هذه الموجهات
لدي اختبار غير مستقر يفشل عند محاولة النقر على زر. يستخدم الاختبار محددات CSS لكن العنصر لا يُعثر عليه أحياناً. ساعدني في إعادة كتابته باستخدام المحددات التي تواجه المستخدم وأنماط الانتظار المناسبة.
تتداخل اختباراتي مع بعضها لأنها تتشارك حالة المتصفح. أرني كيفية هيكلة مجموعة الاختبار الخاصة بي بحيث يعمل كل اختبار في عزلة تامة مع ملفات تعريف الارhasilan جديدة والتخزين والسياق.
أحتاج إلى كشط موقع ويب يستخدم كشف الروبوتات. أرشدني عبر تنفيذ تقنيات التخفي، والتأخيرات المناسبة بين الطلبات، والتعامل مع نوافذ الحوار المنبثقة التي تظهر بشكل غير متوقع.
يفشل اختي بشكل متقطع في CI لكنه ينجح محلياً. ساعدني في تكوين جمع التتبع، وتعيين إعدادات العرض المتسقة، وتحليل الفشل لتحديد السبب الجذري.
أفضل الممارسات
- استخدم المحددات التي تواجه المستخدم مثل getByRole وgetByText وgetByLabel بدلاً من محددات CSS أو XPath الهشة
- وثق بآلية الانتظار التلقائي لـ Playwright بدلاً من إضافة مهلة يدوية أو استدعاءات انتظار
- قم بتشغيل كل اختبار في سياق متصفح جديد لضمان العزل الكامل ومنع تسرب الحالة
تجنب
- إضافة استدعاءات انتظار عشوائية بدلاً من انتظار شروط محددة
- استخدام محددات CSS أو XPath كأول اختيار بدلاً من المحددات الدلالية التي تواجه المستخدم
- مشاركة سياق متصفح واحد عبر اختبارات متعددة مما يسبب تلوث الحالة