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

browser-automation

آمن

Créer des scripts d'automatisation de navigateur fiables

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

Les tests de navigateur instables gaspillent des heures de débogage. Apprenez les patterns Playwright pour des sélecteurs stables, des attentes intelligentes et l'automatisation résistant à la détection.

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

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

2

رفع في Claude

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

3

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

اختبرها

استخدام "browser-automation". Le test échoue avec une erreur élément non trouvé sur le bouton de connexion

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

Remplacez le sélecteur CSS par getByRole : await page.getByRole('button', { name: 'Sign in' }).click(). Playwright attend automatiquement que l元素 soit actionnable.

استخدام "browser-automation". Les tests passent individuellement mais échouent lorsqu'ils sont exécutés ensemble

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

Créez un nouveau contexte de navigateur par test en utilisant test.beforeEach avec context = await browser.newContext(). Cela isole les cookies et le localStorage entre les tests.

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

آمن
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
الامتثال للمواصفات

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

Architecture de test E2E

Construire des tests de bout en bout fiables qui s'exécutent de manière cohérente dans les pipelines CI/CD sans échecs instables.

Systèmes de web scraping

Créer des scrapers qui gèrent le contenu dynamique, évitent la détection et fonctionnent à long terme sans se casser.

Interaction des agents IA avec le navigateur

Permettre aux agents IA d'interagir avec les interfaces web de manière fiable en utilisant des stratégies d'attente et des sélecteurs appropriés.

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

Débutant : Corriger un sélecteur de test instable
J'ai un test instable qui échoue lorsqu'il essaie de cliquer sur un bouton. Le test utilise des sélecteurs CSS mais parfois l'élément n'est pas trouvé. Aidez-moi à le réécrire en utilisant des localisateurs orientés utilisateur et des patterns d'attente appropriés.
Intermédiaire : Construire l'isolation des tests
Mes tests interfèrent les uns avec les autres car ils partagent l'état du navigateur. Montrez-moi comment structurer ma suite de tests pour que chaque test s'exécute en complète isolation avec des cookies frais, du stockage et du contexte.
Avancé : Scraping anti-détection
J'ai besoin de scraper un site web qui utilise la détection de bots. Guidez-moi à travers l'implémentation de techniques de dissimulation, les délais appropriés entre les requêtes et la gestion des dialogues popup qui apparaissent de manière inattendue.
Expert : Déboguer l'échec d'un test avec les traces
Mon test échoue de manière intermittente en CI mais passe en local. Aidez-moi à configurer la collecte de traces, définir des paramètres de fenêtre d'affichage cohérents et analyser l'échec pour identifier la cause racine.

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

  • Utilisez des localisateurs orientés utilisateur comme getByRole, getByText et getByLabel au lieu de sélecteurs CSS ou XPath fragiles
  • Faites confiance au mécanisme d'attente automatique de Playwright plutôt que d'ajouter des timeouts manuels ou des appels de sleep
  • Exécutez chaque test dans un nouveau contexte de navigateur pour assurer une isolation complète et éviter la fuite d'état

تجنب

  • Ajouter des appels arbitraires waitForTimeout au lieu d'attendre des conditions spécifiques
  • Utiliser des sélecteurs CSS ou XPath comme premier choix au lieu de localisateurs sémantiques orientés utilisateur
  • Partager un seul contexte de navigateur entre plusieurs tests ce qui cause la pollution de l'état

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

Pourquoi mes tests échouent-ils de manière intermittente en CI mais passent en local ?
Les environnements CI ont des caractéristiques de timing différentes. Utilisez des attentes appropriées pour que les éléments soient actionnables, activez la collecte de traces pour le débogage et assurezvous que chaque test a une isolation complète.
Quelle est la différence entre les sélecteurs CSS et les localisateurs orientés utilisateur ?
Les localisateurs orientés utilisateur comme getByRole reflètent comment les utilisateurs interagissent avec votre application et sont plus résilients aux changements d'UI. Les sélecteurs CSS couplent les tests aux détails d'implémentation qui peuvent changer lors de la refactorisation.
Comment faire pour que mon scraper évite la détection de bots ?
Ajoutez des délais réalistes entre les requêtes, utilisez des plugins de dissimulation pour masquer les signatures d'automatisation, faites tourner les user agents et imitez les patterns d'interaction humains avec les mouvements de souris.
Devrais-je utiliser Playwright ou Puppeteer pour mon projet ?
Playwright supporte plusieurs navigateurs et a une attente automatique intégrée. Puppeteer est axé sur Chrome mais plus léger. Choisissez Playwright pour les tests multi-navigateurs, Puppeteer pour les besoins Chrome uniquement.
Comment gérer les dialogues popup qui apparaissent pendant les tests ?
Attendez que le dialogue popup apparaisse avant de déclencher l'action qui l'ouvre. Utilisez les gestionnaires d'événements page.on('dialog') ou waitForEvent pourattraper et gérer les dialogues correctement.
Quelle taille de fenêtre d'affichage dois-je utiliser pour les tests ?
Définissez une taille de fenêtre d'affichage cohérente pour tous les tests en utilisant browser.newContext({ viewport: { width: 1280, height: 720 } }). Cela garantit des mises en page reproductibles et des comparaisons de captures d'écran.

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

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md