Quotidien Shaarli
Hier - September 12, 2026
L'implémentation de Page Objects dans Playwright est une approche pour améliorer la maintenabilité et la réutilisabilité du code de test automatisé. Plutôt que d'interagir directement avec les éléments de l'interface utilisateur dans chaque scénario de test, les Page Objects encapsulent les sélecteurs d'éléments et les actions associées à une page spécifique de l'application web. Cela permet de centraliser la logique de localisation des éléments, rendant les tests plus robustes face aux changements de structure du site.
Playwright propose deux styles de Page Objects : un pour les suites de tests utilisant le runner intégré de Playwright, et un autre destiné à l'intégration dans des frameworks de test externes comme Jest ou Cucumber. Les deux approches s'appuient sur les concepts de fixtures de test, notamment la fixture Page qui fournit un objet pour interagir avec une seule page du navigateur et la notion de Locator pour trouver des éléments de manière fiable grâce aux mécanismes d'attente automatique de Playwright.
La mise en place d'un Page Object implique généralement d'importer les types Locator et Page de la bibliothèque Playwright Test. Ces objets fournissent des méthodes pour sélectionner et manipuler les éléments de l'interface, assurant que les tests sont moins susceptibles de devenir obsolètes en cas de modifications mineures du code HTML de l'application.
Pour mieux comprendre les systèmes complexes, l'auteur a développé une approche utilisant des agents d'IA pour agréger des connaissances réparties entre le code, la documentation et le savoir tacite des équipes. L'objectif est de supprimer la nécessité de réunir plusieurs personnes pour décortiquer le fonctionnement d'un système.
La première tentative consistait en un agent général connecté à des outils comme Notion et GitHub. Bien qu'utile pour des périmètres restreints, cette approche a montré ses limites en matière de fiabilité et de capacité à traverser les frontières des différents domaines d'expertise. Face à ces difficultés, l'auteur a décidé de construire une solution plus robuste et personnalisée.
La seconde tentative, nommée "ruche", implique la création d'un dépôt centralisé regroupant les dépôts de code pertinents via des sous-modules Git. Chaque sous-module est accompagné d'un fichier AGENTS.md fournissant un contexte, formant ainsi une "ruche" d'agents capables d'accéder et de traiter l'information de manière plus efficace.
L'hébergement de son propre serveur de messagerie est désormais réalisable, y compris depuis son domicile, malgré les réticences fréquentes liées aux problèmes de spam et de livraison. L'idée principale est de reprendre le contrôle de ses données et de favoriser la décentralisation d'Internet, en évitant que quelques grandes entreprises ne concentrent toutes les informations.
Pour un hébergement à domicile, certaines conditions techniques sont nécessaires : une adresse IP statique IPv4 non blacklistée, ne pas être derrière un CGNAT, pouvoir modifier le enregistrement PTR de son IP et ouvrir les ports couramment utilisés par les serveurs de messagerie. Les interruptions de service internet sont généralement bien gérées par le système de relai des e-mails, le destinataire ne perdant donc pas de messages lors de courtes indisponibilités.
Plusieurs solutions logicielles existent pour mettre en place un serveur de messagerie, comme docker-mailserver, Stalwart ou Mailcow, offrant différentes approches pour le déploiement. Il est également crucial de configurer correctement les enregistrements DNS (SPF, DKIM, DMARC, MX) de son domaine pour assurer une bonne délivrabilité des e-mails et prévenir le spoofing.