¿Cloud Flow o Desktop Flow? La decisión en 5 preguntas
¿Cloud Flow o Desktop Flow? Así se decide en Power Automate cuando interviene un ERP antiguo sin API.
Por qué se rompen los selectores en Power Automate Desktop, cómo construirlos de forma robusta y cómo usar las acciones Wait para tiempos de espera reales en lugar de pausas fijas.
Cuando una automatización de interfaz creada con Power Automate Desktop (PAD) falla de repente con “Failed to get UI element” tras semanas en producción, casi nunca es casualidad. Normalmente algo ha cambiado en segundo plano que el selector ya no encuentra: una actualización de la aplicación, una resolución de pantalla distinta, una ventana que ahora tarda un segundo más en abrirse. Precisamente en estos dos factores, selectores robustos y tiempos de espera limpios, se decide si un flujo funciona de forma estable durante meses en modo desatendido o hay que repararlo manualmente cada pocos días.
Esta guía te muestra cómo se construyen los selectores en PAD, qué operadores y variables los hacen dinámicos, y cómo sustituir pausas fijas por una sincronización real usando las acciones Wait adecuadas. Al final encontrarás una checklist para proteger tus flujos existentes frente a las causas de fallo más habituales.
Un selector en Power Automate Desktop describe exactamente dónde se encuentra un elemento de interfaz en la jerarquía de una aplicación o una página web. Según Microsoft, los selectores se crean cuando PAD captura propiedades como el nombre, la clase o el ID de automatización, además de la posición del elemento en la estructura de la interfaz. Precisamente esa captura es lo que hace que los selectores sean sensibles a los cambios. Microsoft menciona en la guía de solución de problemas de flujos de escritorio desatendidos entre otros los siguientes factores, que pueden invalidar un selector que antes funcionaba:
Quien sabe en qué puntos suele romperse un selector puede construirlo desde el principio para que resista esas variaciones, en lugar de reaccionar solo tras el primer fallo.
Un selector se compone de varios niveles encadenados con el carácter >. Cada nivel describe un elemento con sus atributos en la forma element[Attribut1="Wert1"][Attribut2="Wert2"]. Un ejemplo sencillo de la documentación sobre cómo crear una selección personalizada muestra una ventana de editor: :desktop > window[Name="Notizen.txt - Editor"][Process="Notepad"]. El primer nivel siempre empieza con el elemento raíz :desktop, y cada nivel siguiente es hijo del anterior.
El operador predeterminado Igual busca un valor exacto y fijo. Esto funciona de forma fiable en aplicaciones estáticas, pero pronto se convierte en un problema en cuanto los títulos de ventana cambian dinámicamente, por ejemplo por un nombre de archivo o una marca de tiempo en el título. Power Automate ofrece para ello otros cinco operadores:
Un título de ventana como “Notizen.txt - Editor (2)” se puede capturar de forma mucho más robusta con Empieza por que con Igual, porque el número entre paréntesis al final puede variar sin que el selector se rompa.
Si el valor de un atributo depende de una acción anterior, por ejemplo un nombre de archivo que solo se conoce en tiempo de ejecución, puedes insertar en el selector una variable con notación de porcentaje, como :desktop > window[Name="%WindowName%"][Process="Notepad"]. Así el selector sigue siendo válido aunque el valor esperado cambie de una ejecución a otra.
Un mismo elemento de interfaz puede tener varios selectores en PAD. Si el primero falla, Power Automate pasa automáticamente al siguiente en el orden definido, sin ningún paso adicional que programar en tu flujo. Con el botón Selección con nueva captura o copiando un selector existente, puedes crear variantes adicionales, por ejemplo una con Igual para el caso normal y otra con Contiene o Regex como nivel de respaldo.
Para interfaces especialmente inestables, como sesiones de terminal o aplicaciones heredadas sin una jerarquía de interfaz limpia, Microsoft recomienda en la misma guía además el respaldo por imagen, en el que PAD recurre al reconocimiento de imágenes en lugar de a los atributos de interfaz cuando ya no funciona ningún selector normal.
Las acciones “Wait” fijas con un número de segundos son un motivo frecuente de que los flujos vayan innecesariamente lentos o accedan a un elemento demasiado pronto. Power Automate Desktop ofrece para ello acciones de sincronización dedicadas, que esperan al estado real de la aplicación en lugar de dejar pasar ciegamente un intervalo de tiempo.
Las tres acciones se pueden configurar para que fallen con un error de tiempo de espera agotado tras transcurrir un tiempo definido, en lugar de esperar indefinidamente. Esto es importante para los flujos desatendidos, para que una ventana bloqueada no paralice toda la ejecución, sino que pase de forma controlada al manejo de errores.
Antes de que un flujo pase a funcionamiento desatendido, merece la pena probar cada selector crítico directamente en el Selector Builder. Si un selector se rompe de todos modos, la función «Reparar selector» ofrece una ayuda rápida: recapturas el elemento con Ctrl+clic izquierdo, PAD compara la estructura antigua con la nueva y propone una selección reparada, que aún puedes revisar antes de aceptarla. Si un selector contiene variables, la reparación automática no funciona según Microsoft, y solo queda el ajuste manual en el editor de texto del Selector Builder.
Para los flujos que van a funcionar de forma permanente sin supervisión, Microsoft resume varias recomendaciones que han demostrado su valor en la práctica:
Con esta combinación de selectores robustos y condiciones de espera reales, un flujo se queda en el vacío mucho menos a menudo. Mantienes el control del proceso, porque cada acción solo arranca cuando la aplicación está realmente lista para ella, en lugar de lanzarse tras un tiempo de espera estimado y confiar en la suerte. Quien use Power Automate Desktop de forma productiva a mayor escala debería planificar estas medidas de estabilidad desde el principio, por ejemplo en el marco de proyectos de automatización acompañados, en lugar de incorporarlas solo después de los primeros fallos nocturnos.
Un tiempo de espera fijo solo estima cuánto necesita una aplicación, pero no reacciona a su estado real. Si la aplicación es más rápida, el flujo pierde tiempo innecesariamente; si es más lenta, por ejemplo por carga de red o un servidor lento, la siguiente acción intenta acceder a un elemento que todavía no está ahí. Acciones como Esperar el contenido de la ventana o Esperar ventana comprueban en cambio el estado real de la aplicación y solo continúan cuando la condición realmente se cumple.
Esperar ventana se refiere a la ventana como conjunto, es decir si se abre, se cierra, obtiene el foco o lo pierde. Esperar el contenido de la ventana va un nivel más allá y comprueba si, dentro de una ventana ya abierta, aparece, desaparece o cambia su estado habilitado o deshabilitado un texto concreto o un elemento de interfaz concreto. En la práctica, a menudo combinas ambas: primero esperar la ventana, después el contenido concreto.
No hay un número fijo, pero Microsoft recomienda explícitamente guardar varios selectores por elemento para que entre en acción un respaldo si el primero falla. En la práctica, con dos o tres variantes basta para la mayoría de los elementos, por ejemplo una con Igual para el caso normal, una con Contiene o Regex como respaldo, y para interfaces especialmente inestables, además un respaldo por imagen.
No. Según la documentación de Microsoft, la función de reparación automática no funciona con selectores que contienen una o más variables. En ese caso debes sustituir temporalmente las variables por valores estáticos para usar la reparación, o ajustar el selector directamente a mano en el editor de texto del Selector Builder.
Si ni siquiera un selector reparado con varios niveles de respaldo funciona de forma estable, suele ayudar, según Microsoft, cambiar al respaldo por imagen o a la automatización de superficie con acciones de ratón, teclado y OCR, especialmente en aplicaciones sin una jerarquía de interfaz limpia, por ejemplo en entornos de escritorio virtual. Además, merece la pena examinar la causa subyacente: a menudo se debe a una diferencia de resolución de pantalla, escalado DPI o modo de ventana entre el entorno de desarrollo y la máquina de destino desatendida.
Fundador de NordFlux. Siete años de experiencia, desde la web y el SEO hasta la automatización a escala de grupo, hoy de forma pragmática para las pymes y con soberanía de datos alemana.
Certificaciones
¿Cloud Flow o Desktop Flow? Así se decide en Power Automate cuando interviene un ERP antiguo sin API.
El Recorder en Power Automate Desktop registra los clics como acciones de flujo. Qué puede hacer, cómo funcionan UIA y MSAA, y dónde alcanza sus límites.
Copilot en Power Automate for Desktop crea, amplía y repara flujos de escritorio a partir de un prompt, aunque todavía con limitaciones de región e idioma.
Las pausas fijas y los selectores frágiles son la causa más frecuente de que los flows de escritorio no supervisados fallen por la noche. Construimos sus selectores con estrategias de respaldo y condiciones de espera reales, para que los flows funcionen de forma fiable incluso cuando cambian las interfaces. Después, si lo desea, también asumimos la operación continua y la resolución de errores.