L'écran de vérification de l'e-mail administrateur intégré à WordPress — qui s'affiche tous les quelques mois depuis la version 5.3 — interrompt l'automatisation Playwright lors de la mise à jour de plugins sur des sites sans accès SSH. Cette étape supplémentaire force les scripts à attendre un bouton qui n'apparaît jamais, provoquant des délais d'attente (timeouts) et des déploiements bloqués.

Ce qui provoque le blocage

Lorsqu'un script Playwright se connecte à wp-admin, il s'attend à ce que le tableau de bord se charge immédiatement. Au lieu de cela, WordPress redirige parfois vers une page dont l'URL contient adminhash=. La page demande : « Est-ce toujours votre adresse ? » avec deux boutons : Oui, c'est mon adresse et Je patienterai. Un humain clique sur « Je patienterai » et continue plus tard ; un script autonome continue de chercher les éléments du tableau de bord, ne les trouve jamais et finit par dépasser le délai d'attente.

Pourquoi cette invite existe

WordPress a ajouté cette invite pour confirmer que l'adresse e-mail de l'administrateur est toujours accessible. Elle apparaît environ tous les quelques mois, quelle que soit l'activité du site, et sert de contrôle de sécurité pour les propriétaires de sites qui pourraient avoir perdu l'accès à cette adresse.

Qui est affecté

  • Les développeurs qui s'appuient sur Playwright pour pousser des mises à jour de plugins, exécuter des tests UI ou effectuer des tâches d'administration en masse.
  • Les hébergeurs qui restreignent l'accès SSH, forçant les utilisateurs à automatiser via le navigateur.
  • Les propriétaires de sites qui constatent des retards de mise à jour car l'automatisation n'atteint jamais l'écran de mise à jour.

Le coût ne se résume pas à quelques secondes perdues ; des échecs répétés peuvent interrompre les fenêtres de maintenance planifiées et imposer une intervention manuelle.

Détecter l'écran indésirable

La présence de adminhash= dans l'URL actuelle est un indicateur fiable. Cette chaîne n'apparaît que sur la page de vérification de l'e-mail, et non sur le tableau de bord habituel ou sur tout autre écran d'administration.

Un contournement simple

Insérez une vérification juste après l'étape de connexion. Si l'URL contient adminhash=, cliquez sur le bouton « Je patienterai » et attendez que la page soit stable avant de continuer.

def ensure_past_email_check(page):
    if "adminhash=" in page.url:
        page.click("text=I'll wait")
        page.wait_for_load_state("networkidle")

Appelez ensure_past_email_check(page) immédiatement après chaque connexion réussie. La fonction ne fait rien lorsque l'écran de vérification n'apparaît pas, ce qui permet au script de rester rapide et déterministe.

Quand utiliser le contournement

Pour les flux de travail automatisés qui doivent s'exécuter sans supervision humaine — comme les mises à jour nocturnes de plugins ou les tests UI en intégration continue — le contournement est pratique. Il traite l'étape de vérification comme un détour prévisible plutôt que comme une défaillance aléatoire.

Contre-argument

Certains administrateurs soutiennent que rejeter automatiquement l'invite pourrait masquer un véritable problème de réception d'e-mails. Si l'e-mail de l'administrateur devient réellement inaccessible, le site pourrait manquer des notifications critiques. Dans ce cas, une approche plus nuancée — enregistrer l'événement, envoyer une alerte ou mettre l'automatisation en pause — pourrait être préférable.

Points de vigilance pour la suite

  • WordPress pourrait modifier le modèle d'URL ou ajouter des étapes de vérification supplémentaires, ce qui briserait la vérification adminhash=. Surveillez les notes de version du cœur (core).
  • Le moteur de sélecteurs de Playwright évolue ; assurez-vous que le sélecteur de texte "text=I'll wait" continue de correspondre au bouton après toute refonte de l'interface utilisateur (UI).
  • Si vous gérez de nombreux sites, envisagez de centraliser la logique de contournement dans une bibliothèque partagée pour éviter la duplication de code.

En gérant explicitement la page de confirmation de l'e-mail administrateur, les développeurs transforment un timeout occasionnel en une partie routinière de leurs scripts Playwright, garantissant la fiabilité de l'automatisation WordPress, même lorsque la plateforme présente une invite de sécurité inattendue.

Source: https://dev.to/susumun/browser-based-updates-getting-stuck-on-the-confirm-your-admin-email-screen-why-playwright-6io