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.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "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.
التدقيق الأمني
آمن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.
درجة الجودة
ماذا يمكنك بناءه
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.
جرّب هذه الموجهات
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.
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.
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.
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