WordPress’s built-in admin-email verification screen—shown every few months since version 5.3—breaks Playwright automation that updates plugins on sites without SSH access. The extra step forces scripts to wait for a button that never appears, causing timeouts and stalled deployments.

Qué provoca el bloqueo

Cuando un script de Playwright inicia sesión en wp-admin, espera que el panel de control se cargue inmediatamente. En su lugar, WordPress a veces redirige a una página cuya URL contiene adminhash=. La página pregunta: “¿Sigue siendo esta su dirección?” con dos botones: Yes, this is my address e I'll wait. Un humano hace clic en “I'll wait” y procede más tarde; un script desatendido sigue buscando los elementos del panel de control, nunca los encuentra y, finalmente, agota el tiempo de espera.

Por qué existe el aviso

WordPress añadió este aviso para confirmar que la dirección de correo electrónico del administrador sigue siendo accesible. Aparece aproximadamente cada pocos meses, independientemente de la actividad del sitio, y tiene como objetivo realizar una comprobación de seguridad para los propietarios de sitios que podrían haber perdido el acceso a dicha dirección.

Quiénes se ven afectados

  • Desarrolladores que dependen de Playwright para implementar actualizaciones de plugins, ejecutar pruebas de UI o realizar tareas administrativas masivas.
  • Proveedores de hosting que restringen el acceso SSH, obligando a los usuarios a automatizar a través del navegador.
  • Propietarios de sitios que experimentan retrasos en las actualizaciones porque la automatización nunca llega a la pantalla de actualización.

El coste no es solo perder unos pocos segundos; los fallos repetidos pueden detener las ventanas de mantenimiento programadas y obligar a una intervención manual.

Cómo detectar la pantalla no deseada

La presencia de adminhash= en la URL actual es un indicador fiable. La cadena aparece solo en la página de verificación de correo electrónico, no en el panel de control habitual ni en ninguna otra pantalla de administración.

Un bypass sencillo

Inserta una comprobación justo después del paso de inicio de sesión. Si la URL contiene adminhash=, haz clic en el botón “I'll wait” y espera a que la página se estabilice antes de continuar.

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

Llama a ensure_past_email_check(page) inmediatamente después de cada inicio de sesión exitoso. La función no hace nada cuando la pantalla de verificación no aparece, manteniendo el script rápido y determinista.

Cuándo utilizar el bypass

Para flujos de trabajo automatizados que deben ejecutarse sin supervisión humana —como actualizaciones de plugins nocturnas o pruebas de UI de integración continua—, el bypass es práctico. Trata el paso de verificación como un desvío predecible en lugar de un fallo aleatorio.

Contrapunto

Algunos administradores argumentan que descartar el aviso automáticamente podría ocultar un problema real de entrega de correo electrónico. Si el correo de administrador realmente deja de ser accesible, el sitio podría perder notificaciones críticas. En tales casos, un enfoque más matizado —registrar el evento, enviar una alerta o pausar la automatización— podría ser preferible.

Qué tener en cuenta a continuación

  • WordPress podría cambiar el patrón de la URL o añadir pasos de verificación adicionales, lo que rompería la comprobación de adminhash=. Mantente atento a las notas de la versión del core.
  • El motor de selectores de Playwright evoluciona; asegúrate de que el selector de texto "text=I'll wait" siga coincidiendo con el botón tras cualquier rediseño de la interfaz de usuario.
  • Si gestionas muchos sitios, considera centralizar la lógica del bypass en una biblioteca compartida para evitar la duplicación de código.

Al gestionar explícitamente la página de confirmación del correo electrónico del administrador, los desarrolladores convierten un timeout ocasional en una parte rutinaria de sus scripts de Playwright, manteniendo la automatización de WordPress fiable incluso cuando la plataforma presenta un aviso de seguridad inesperado.

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