Rocketbot Studio : Migrar bots con Virtualizacion

Pasos a Seguir para la Migración de Bots de Virtualización

Virtualización en la Máquina Destino

Es recomendable realizar la virtualización directamente en la máquina o computadora final. Esto se debe a que la resolución de pantalla puede variar, lo que podría requerir ajustes en la configuración, similar a la máquina donde se realizó la virtualización inicialmente.

Consistencia de Imágenes de Referencia

Es posible que la imagen utilizada como referencia no sea la misma que la que se encuentra en la computadora de destino. En tal caso, será necesario capturar nuevamente las imágenes de referencia, incluyendo focos , como ejemplo, el comando “hacer clic en imagen” , etc.

Compatibilidad de Resolución y Zoom

Si la máquina en la que se trabaja es compatible tanto con la resolución como con el zoom utilizados al momento de capturar las pantallas en la referencia de virtualización, se deben seguir las siguientes consignas para asegurar una migración exitosa de los bots:

  • Registro de Comandos
    Al grabar un comando en el entorno de virtualización, las imágenes se almacenarán en una carpeta específica dentro del directorio de Rocketbot, bajo el nombre correspondiente al bot, en la ruta Rocketbot/robots. Esta carpeta es crucial, ya que las imágenes se utilizan como comandos en Rocketbot Studio, tales como “hacer clic en imagen” y “esperar por imagen”.

  • Migración del Archivo .db
    Para completar la migración del bot, es imprescindible transferir también el archivo .db. Este archivo es un componente básico del proceso de migración.

Consideraciones Finales

Asegurarse de seguir meticulosamente los pasos anteriores es esencial para lograr una migración exitosa de los bots de virtualización.

Una correcta transferencia de los componentes no solo garantizará que el bot funcione adecuadamente en su nuevo entorno, sino que también optimizará su rendimiento y facilitará futuras actualizaciones.

Adoptar un enfoque riguroso en este proceso es clave para minimizar cualquier inconveniente y asegurar un despliegue eficiente.

En caso de no entender algún concepto relacionado con la virtualización en Rocketbot Studio, se recomienda consultar la documentación : Documentación de Virtualización en Rocketbot.




Crear contraseña de aplicación para Gmail

Una contraseña para una aplicación es un password de 16 letras que Google almacena en su cuenta y que da acceso al sistema sin necesidad de que se produzca una verificación en dos pasos. 

Para su configuración es necesario cumplir tener activo la verificación de segundo factor 2FA. En el caso de no tenerlo activado, no podrá crear una contraseña de aplicación. Para ello debemos de cumplir los siguientes pasos:

Primer Paso .- Activar verificación de segundo factor.

Lo primero que debes hacer es iniciar sesión en tu cuenta de Gmail, una vez conectado a tu cuenta, accede al menú de configuraciones. Lo encuentras en la parte superior derecha del navegador, en el círculo con tu avatar, luego debes elegir la opción «Cuenta de Google«

Te llevará a una pantalla de configuración de tu cuenta, donde tendrás que acceder al menú lateral»Seguridad»:

Verás una breve explicación sobre el doble factor de autenticación. Para iniciar este proceso haz clic en el botón «Empezar».

Vuelve a indicar la contraseña de tu cuenta en Google y haz clic en «Siguiente«:

Introduce tu número de teléfono y la forma que deseas recibir los códigos, a continuación pulsa en «Siguiente«:

Google te enviará los códigos de confirmación. Introduce tu código, a continuación pulsa en «Siguiente«:

Una vez confirmado tu número de teléfono, puedes empezar a configurar el 2FA, para ello haz clic en «Activar«:

Listo, su cuenta de gmail.com es segura y cuenta con una segunda capa de seguridad para acceder a su correo.

Segundo Paso .- Configurar una contraseña de Aplicación

La contraseña de aplicación se encuentra en la misma sección de Gestionar tu cuenta.

En la parte media de la página, en la sección iniciar sesión en google, encontrarás una parte donde pone contraseñas de aplicación: ninguna. Haz clic en ninguna o en la flecha hacia la derecha

En esta imágen de referencia notamos que ya existen 2 contraseñas de aplicación creadas, pero en el caso de no tener ninguna contraseña creada se mostrará la palabra NInguna.

En la siguiente pantalla pedirá que vuelvas a poner tu contraseña, por seguridad. Debes poner tu contraseña actual. No se va a cambiar, vamos a crear una especial. Una vez pongas tu contraseña, la siguiente pantalla es la que permite crear la nueva contraseña de aplicación

Puedes seleccionar en Otros (nombre personalizado) con la finalidad de asignarle un nombre.

Al dar clic , debemos colocar el nombre y pulsa el botón generar

Ahora por fin has creado una nueva contraseña de aplicación exclusiva para enviar emails desde cualquier App . Solamente, no sustituye a tu contraseña de gmail.

Datos para Configuración

Luego de crear la contraseña de aplicación, podrá configurar su cuenta en el portal. Los datos de envio son los siguiente:

  1. Correo/Usuario: sucorreo@gmail.com (en el caso de google apps sería @sudominio.com)
  2. Contraseña: La generada en el segundo paso.
  3. Servidor SMTP : smtp.gmail.com
  4. Puerto: 587
  5. TLS : SI
  6. Autenticación SMTP : SI

Aqui estan los links de los modulos donde se pueden ejecutar estas acciones :

Email Advaced : https://market.rocketbot.com/module/emailAdvanced

Gmail : https://market.rocketbot.com/module/gmail_




Crear contraseña de aplicación para Outlook

Una contraseña para una aplicación es un password que Outlook almacena en su cuenta y que da acceso al sistema sin necesidad de que se produzca una verificación en dos pasos. 

Para su configuración es necesario cumplir tener activo la verificación de segundo factor 2FA. En el caso de no tenerlo activado, no podrá crear una contraseña de aplicación. Para ello debemos de cumplir los siguientes pasos:

Primer Paso .- Activar verificación de segundo factor.

Lo primero que debes hacer es iniciar sesión en tu cuenta de Outlook, una vez conectado a tu cuenta, accede al menú de tu cuenta. Lo encuentras en la parte superior derecha del navegador, en el cícurlo con tu avatar, luego debes elegir la opción «Mi cuenta de Microsoft«

Te llevará a una pantalla, donde tendrás que acceder a la opción de »Seguridad»

Al presionar te mostrará una opción para acceder presionando en el botón de »Panel de seguridad»:

Serás redireccionado al panel de Seguridad, donde podrás ver las opciones de conceptos básicos. Para iniciar este proceso haz clic en la opción «Opciones de seguridad avanzada».

Luego de eso se le pedirá que confirme el número de telefono asociado a su cuenta, por lo cual debe ingresar los 4 últimos digitos para continuar.

Con la finalidad de poder explicar el método más siemple para la verificación de segundo factor, escogeremos la opción de «No, gracias» del panel de opciones.

Importante:

Cómo alternativa Outlook le ofrecerá utilizar su aplicación móvil para generar las contraseñas. Puede optar por ese procedimiento en el caso de que desee.

Al finalizar, se nos mostrará la siguiente pantalla de Seguridad, en donde podrá notar que la Verificación en dos pasos se encuentra DESACTIVADA , por lo que procedemos a dar clic en «Activar»

Al dar clic en la opción de Activar, se nos mostrará un nuevo cuadro de dialogo con diferentes opciones para verificar el acceso a la cuenta.

Usted puede escoger cualquiera de las 3 opciones que muestran a continuación. A continuación escogeremos la forma más sencilla de verificación de correo el cual es Una dirección de correo electrónico alternativa.

Importante:

Puede también escoger la opción de aplicación el cual le pedirá tener instalado una aplicación móvil. Ejemplo: Microsoft Authenticator o Google Authenticator.

Luego de colocar la cuenta de  correo solo debe dar clic en siguiente y recibirá un email indicando la clave que debe agregar para validar su cuenta.

Luego de confirmar el código, su cuenta tendrá activada la Verificación de dos pasos.

Segundo Paso.- Configurar una contraseña de Aplicación

Para crear una nueva contraseña de aplicación para una aplicación o dispositivo, sigue los pasos que se indican a continuación. Puedes repetir estos pasos de creación de una contraseña de aplicación para todas las aplicaciones o dispositivos que necesites.

Dirígete a la página Conceptos básicos sobre seguridad e inicia sesión en tu cuenta de Microsoft y seleccionamos  «Opciones de Seguridad».

En Contraseñas de aplicación, selecciona «Crear una nueva contraseña de aplicación».

Se genera una nueva contraseña de aplicación que aparece en la pantalla.

Datos para Configuración

Luego de crear la contraseña de aplicación, podrá configurar su cuenta en el portal. Los datos de envio son los siguiente:

  1. Correo/Usuario: sucorreo@outlook.com (en el caso de Office365 sería @sudominio.com)
  2. Contraseña: La generada en el segundo paso.
  3. Servidor SMTP : outlook.office365.com
  4. Puerto: 587
  5. TLS : SI
  6. Autenticación SMTP : SI

Aqui estaran disponibles los links a los modulos donde se puedan aplicar estas acciones :

Email Advanced : https://market.rocketbot.com/module/emailAdvanced

Outlook 365 : https://market.rocketbot.com/module/Outlook365




Rocketbot Transaction Framework

Para acceder al comando, deben dirigirse a la sección nativa Frameworks, y dentro seleccionar Rocketbot Transaction Framework (RTFramework para abreviar). Al abrir se les mostrará la configuración del comando, tal cual la imagen de arriba, donde les permitirá seleccionar el robot que representará cada estado del proceso, ahondaremos en ello más adelante.

Los archivos que estaremos revisando en la documentación se pueden descargar desde este link: http://docs.rocketbot.com/wp-content/uploads/2024/07/RTFramework.zip

Durante la documentación estaremos revisando la base de datos RTFramework_example.db. El zip también incluye la base de datos RTFramework_template.db la cual es la estructura base, y el archivo Products_Table_framework.xlsx el cual se utiliza en la base de datos de ejemplo. Para poder probar la ejecución de ejemplo se debe dejar el archivo xlsx en la raíz de Rocketbot.

Vista general

Vista general del RTFramework
Vista de la asignación de variables de cada robot

Los robots utilizados en el Framework son ejecutados siguiendo la misma metodología que el comando Ejecutar robot Rocketbot (expose). Esto quiere decir que los robots no heredarán variables del padre, sino que se les asignará el valor desde el framework, además retornará el resultado de la ejecución, esto último deberá ser obligatorio en algunos de los robots que ejecutaremos para que todo funcione correctamente.

Robots del RTFramework

Main Robot

El robot principal es el que va a contener el comando del RTFramework.

Vista del comando del robot principal en la base de datos de ejemplo

Variables

RTFramework hace uso de diferentes variables durante su ejecución, en tu robot principal deberás crear las siguientes:

first_config: Variable opcional. En la db de ejemplo se envía como valor a la variable {Config} del robot First Execution Config. Su contenido es un diccionario con las llaves kill y resolution, datos que serán utilizados en el robot mencionado para matar procesos y para modificar la resolución de la pantalla respectivamente.

init_config: Variable opcional. En la db de ejemplo se envía como valor a la variable {Config} del robot Initialization. Su contenido es un diccionario con las llaves file y url, donde file es el archivo excel que se utilizará y url la página que se automatizará.

apps_opened: Variable opcional. En la db de ejemplo no tiene ningún valor por defecto, es utilizada para recibir parte del retorno de la ejecución de Initialization. Se utiliza como parámetro en el robot End Process para saber qué aplicaciones deben cerrarse al finalizar la ejecución.

TransactionData: Variable obligatoria. Se utiliza en el robot de Initialization y Get Transaction Data. En el retorno de información del robot Initialization debe asignarse la lista de información que será procesada en cada transacción.

TransactionItem: Variable obligatoria. Se utiliza en el robot Get Transaction Data para asignar un valor individual de la variable TransactionData. Este contenido que se obtenga se utilizará en el robot Process Transaction.

TransactionNumber: Variable obligatoria. Se utiliza en el robot Get Transaction Data y Process Transaction para indicar el número de transacción que se procesará. Su valor se generará automáticamente en base al número de transacción en curso durante la ejecución.

Status: Variable obligatoria. Se utiliza como variable de control en caso de que la ejecución falle en algún punto. Se debe utilizar en el catch de todos los robots del RTFramework, ahí se asignará el mensaje de error cuando un comando falla.

SystemException: Variable opcional. Acá se asignará el texto de cualquier excepción de sistema que ocurra durante la ejecución del RTFramework.

BusinessException: Variable opcional. Acá se asignará el texto de cualquier excepción de negocio que ocurra durante la ejecución del RTFramework.

First Execution Configuration

Vista de la selección de robot First Execution Config en base de datos de ejemplo

El primer robot que debemos seleccionar en el RTFramework es el de la primera configuración de ejecución. Este robot se encargará de preparar el ambiente donde ejecutaremos nuestro proceso.

Variables

Variables del robot en la db de ejemplo

Status: Variable obligatoria. Se utiliza como variable de control en caso de que la ejecución falle en algún punto. Se debe utilizar en el catch de todos los robots del RTFramework, ahí se asignará el mensaje de error cuando un comando falla.

kill resolution process: Variables opcionales. Son aquellas que se van a utilizar internamente dentro del robot de la db de ejemplo.

Config: Variable opcional expuesta que recibirá la información en la configuración del RTFramework.

En el ejemplo se le asigna el contenido de la variable {first_config} del robot principal

Estructura

El robot First Execution Config. debe seguir una estructura determinada para que el RTFramework funcione de manera correcta, a continuación la detallamos:

[Bloque TryCatch]
    Try:
        # Acá van los comandos que se ejecutarán como primer configuración 
        # de la ejecución
        [Comandos de configuración]

        # Al final de manera opcional puede ir un comando de 
        # Retornar informacion en caso de que necesitemos devolver 
        # algún dato al robot principal
        [Retornar Informacion: Datos {var_retorno}]
    Catch:
        # El primer comando del Catch debe ser Último Estado.
        # De esta manera obtenemos el código del error que pueda suceder y
        # lo asignamos a la variable Status
        [Último Estado: Variable Status]

        # Luego pueden ir los comandos que podamos llegar a requerir para
        # el manejo del error
        [Comandos de manejo de error]

        # Al igual que con el bloque try, debajo de todo el catch debe ir
        # un comando de Retornar Informacion indicando en el input la
        # variable Status
        [Retornar informacion: Datos {Status}]

Initialization

Vista de la selección de robot Initialization en base de datos de ejemplo

El segundo robot que debemos seleccionar es el de la inicialización. Este robot se encargará de abrir las aplicaciones que se utilizarán en el RTFramework y obtener la información de las transacciones que se utilizarán durante el proceso.

Variables

Variables del robot en la db de ejemplo

La variable Status es la que recibirá el mensaje de error en caso de que algún comando falle. Config es una variable expuesta que recibirá la información en la configuración del RTFramework. data_list guardará la lista de información que se procesará y deberá ser devuelta como valor bajo la llave TransactionData en el último comando dentro del try en el robot. El resto de variables son específicas del ejemplo.

En el ejemplo se le asigna el contenido de la variable {init_config} del robot principal

Estructura

El robot Initialization debe seguir una estructura determinada para que el RTFramework funcione de manera correcta, a continuación la detallamos:

[Bloque TryCatch]
    Try:
        # Acá van los comandos que se ejecutarán como inicialización
        [Comandos de inicializacion]

        # Al final de manera obligatoria debe ir un comando de 
        # Retornar informacion que incluya un diccionario con, al menos, 
        # la llave TransactionData que contenga una lista de los datos que 
        # se utilizarán en el proceso. De manera opcional puede incluir 
        # otras llaves con valores que deseemos asignar en el padre.
        [Retornar Informacion: Datos {"TransactionData": "{data_list}"}]
    Catch:
        # El primer comando del Catch debe ser Último Estado.
        # De esta manera obtenemos el código del error que pueda suceder y
        # lo asignamos a la variable Status
        [Último Estado: Variable Status]

        # Luego pueden ir los comandos que podamos llegar a requerir para
        # el manejo del error
        [Comandos de manejo de error]

        # Al igual que con el bloque try, debajo de todo el catch debe ir
        # un comando de Retornar Informacion indicando en el input la
        # variable Status
        [Retornar informacion: Datos {Status}]

Get Transaction Data

Vista de la selección de robot Get Transaction Data en base de datos de ejemplo

El tercer robot que debemos elegir es el encargado de obtener información de la transacción. Su tarea será identificar la próxima transacción a procesar, la cual será enviada al robot Process Transaction.

Variables

Variables del robot en la db de ejemplo

Status: Variable obligatoria. Se utiliza como variable de control en caso de que la ejecución falle en algún punto. Se debe utilizar en el catch de todos los robots del RTFramework, ahí se asignará el mensaje de error cuando un comando falla.

TransactionNumber: Variable obligatoria expuesta. Se utilizará internamente para saber qué numero de transacción se procesará a continuación.

TransactionItem: Variable obligatoria. Durante el proceso incluirá el contenido de la transacción que se procesará.

TransactionData: Variable obligatoria expuesta. Es la variable que contiene todas las transacciones que se utilizan durante el proceso.

En la db de ejemplo se asignan a ambas variables su valor correspondiente desde el padre.

Estructura

El robot Get Transaction Data debe seguir una estructura determinada para que el RTFramework funcione de manera correcta, a continuación la detallamos:

[Bloque TryCatch]
    Try:
        # Grupo de comando destinado a contener la lógica que obtiene la próxima
        # transacción a procesar
        Group:
            # Si el número de transacción es menor al largo de la lista de
            # transacciones, obtengo el siguiente item
            IF: {TransactionNumber} < len({TransactionData})
                [Asignar Variable: {TransactionData}[{TransactionNumber}
                 Dest.: TransactionItem]
            # Si no se cumple significa que se procesaron todas las transacciones,
            # entonces devolvemos None para dar paso a la finalización de la
            # ejecución.
            ELSE:
                [Asignar variable: None
                 Dest.: TransactionItem]

        # Acá aplicamos los comandos que necesitemos ejecutar (opcional)
        [Comandos opcionales al obtener la información de la transacción]

        # Al final de manera obligatoria debe ir un comando de 
        # Retornar informacion que incluya un diccionario con, al menos, 
        # la llave TransactionItem que contenga el valor de su respectiva variable.
        # De manera opcional puede incluir otras llaves con valores que deseemos
        # asignar en el padre.
        [Retornar Informacion: Datos {"TransactionItem": "{TransactionItem}"}]
    Catch:
        # El primer comando del Catch debe ser Último Estado.
        # De esta manera obtenemos el código del error que pueda suceder y
        # lo asignamos a la variable Status
        [Último Estado: Variable Status]

        # Luego pueden ir los comandos que podamos llegar a requerir para
        # el manejo del error
        [Comandos de manejo de error]

        # Al igual que con el bloque try, debajo de todo el catch debe ir
        # un comando de Retornar Informacion indicando en el input la
        # variable Status
        [Retornar informacion: Datos {Status}]

Process Transaction

Vista de la selección del robot y la cantidad de reintentos del robot Process Transaction

El cuarto robot que debemos seleccionar es el que procesa una única transacción. Este robot recibirá como dato la transacción obtenida en el paso anterior, realizará los pasos que necesitemos y finalmente deberá devolver el item de transacción y el número de la misma. En la ejecución de cada transacción pueden haber tres posibles resultados:

  • Éxito: Este resultado ocurre cuando todo el proceso se ejecutó correctamente, sin errores ya sean controlados o no controlados. En este caso, se continúa con la siguiente transacción a procesar.
  • Business Exception: Este resultado ocurre cuando el proceso se encuentra con un error controlado. Son errores predecibles basados en las reglas de negocio que se conocen y se definen con antelación (ver cómo configurarlas en la sección Estructura > Catch). Si un proceso cae bajo este resultado, la transacción se reintentará el número de veces que le indiquemos en el input Max Retries.
  • System Exception: Este resultado ocurre cuando el proceso se encuentra con un error no controlado. Pueden ser causados por problemas en el entorno de ejecución o en el sistema. Si un proceso cae bajo este resultado, el proceso se cancela y se ejecuta el robot Initialization, para reintentar toda la ejecución del RTFramework nuevamente.

Variables

Status: Variable obligatoria. Se utiliza como variable de control en caso de que la ejecución falle en algún punto. Se debe utilizar en el catch de todos los robots del RTFramework, ahí se asignará el mensaje de error cuando un comando falla.

product, color, category, price: Variables opcionales de ejemplo que son utilizadas para manejar dentro del proceso la diferente información que contiene mi transacción.

Exception: Variable obligatoria. Cuando la ejecución no funciona de manera esperada, esta variable recibirá el mensaje de error. Esta variable es muy importante ya que forma parte del manejo de errores para decidir si es una excepción de negocio o excepción del sistema.

TransactionItem: Variable obligatoria (expuesta). Durante el proceso incluirá el contenido de la transacción que se procesará.

TransactionNumber: Variable obligatoria (expuesta). Es la variable que indica el número de transacción que se realiza.

En el ejemplo se asigna a cada una su variable correspondiente del bot padre.

Estructura

El robot Process Transaction debe seguir una estructura determinada para que el RTFramework funcione de manera correcta, a continuación la detallamos:

[Bloque TryCatch]
    Try:
        # Acá van los comandos que realizarán el proceso de la transacción
        [Comandos de manejo de transación]

        # Al final del try de manera obligatoria deben ir dos comandos: 
        # Asignar variable que sume uno a TransactionNumber
        # El comando Retornar Información que devuelva TransactionItem y  
        # TransactionNumber, junto con cualquier otro contenido opcional
        [Retornar Informacion: Datos {"TransactionItem": "{TransactionItem}",
         "TransactionNumber": "{TransactionNumber}"}]

    Catch:
        # El primer comando del Catch debe ser Último Estado.
        # De esta manera obtenemos el código del error que pueda suceder y
        # lo asignamos a la variable Status
        [Último Estado: Variable Status]

        # Luego asignamos a la variable Exception el mensaje del error
        [Asignar Variable: {Status}.get('message')
         Dest: Exception]

        # En este punto se deben establecer las reglas de negocio. En la db de
        # ejemplo se utiliza un IF que comprueba si en el mensaje del error que 
        # ocurrió se encuentra el texto "Unable to locate element". Este error es 
        # muy común en automatizaciones web cuando un elemento no puede ser ubicado 
        # en la página. A veces se soluciona con un reintento, entonces quiero 
        # establecer este caso como un Business Exception. 
        IF: "Unable to locate element" in """{Exception}"""
            True:
                # En este punto debemos retornar un diccionario con, al menos, la
                # llave BusinessException que contenga el texto del error.
                [Retornar informacion: Datos {'BusinessException': '{Exception}'}]
            False:
                # Si llegamos a este punto es porque es un error no controlado.
                # Por lo tanto, debemos retornar todo el contenido de la variable
                # Status, generando un System Exception.
                [Retornar informacion: Datos {Status}]

End Process

Vista de la selección del robot End Process en la base de datos de ejemplo.

El quinto y último robot que debemos seleccionar es el que finaliza la ejecución. Este robot se deberá encargar de enviar los reportes, cerrar los procesos que utilicemos durante la ejecución, etc…

Variables

No recibe ninguna variable obligatoria por parte del padre. En la db de ejemplo, se le comparte la variable apps_opened que indica las aplicaciones abiertas, de esta manera el robot se puede encargar de cerrarlas correctamente.

Estructura

Al igual que el resto de robots, End Process debe utilizar try catch, sin embargo dentro del try tendremos la libertad de utilizarlo como lo necesitemos, sin seguir una estructura predefinida ni devolviendo nada específico al padre. Por otro lado, en el catch debemos colocar como primer comando Último Estado y al final de todo el Retornar Información que devuelva dicha variable.

[Bloque TryCatch]
    Try:
        # Acá van los comandos que se ejecutarán para finalizar la ejecución 
        # (cierre de apps, envio de reportes, etc...)
        [Comandos de finalización]
    Catch:
        # El primer comando del Catch debe ser Último Estado.
        # De esta manera obtenemos el código del error que pueda suceder y
        # lo asignamos a la variable Status
        [Último Estado: Variable Status]

        # Luego pueden ir los comandos que podamos llegar a requerir para
        # el manejo del error
        [Comandos de manejo de error]

        # Debajo de todo el catch debe ir un comando de 
        # Retornar Informacion indicando en el input la
        # variable Status
        [Retornar informacion: Datos {Status}]




Click relativo en Objeto

Windows \ Click relativo en Objeto

Este comando le permite automatizar el clic en un objeto en una interfaz gráfica de usuario (GUI) en función de la posición del elemento identificado más cercano. Este comando es particularmente útil cuando desea interactuar con botones, enlaces u otros elementos en los que se puede hacer clic dentro de la ventana de una aplicación, pero no se reconocen como elementos separados. Utilizando las coordenadas de su elemento más cercano, el registrador guarda la posición del ratón al hacer el clic.

Dato de entrada Descripción Ejemplo
Selector Propiedad de texto utilizada para encontrar un elemento de IU particular. Es un fragmento XML o JSON que especifica los atributos del elemento de GUI que está buscando y de algunos de sus padres. {“win”: “ControlType: WindowControl, “title”: “Calculadora”, “app”: “ApplicationFrameHost.exe”, “class”: “ApplicationFrameWindow”, “handle_”: 394914}
Tiempo máximo de búsqueda Tiempo de espera para que se ejecute la actividad antes de que se genere un error. El valor predeterminado es 30 segundos. 30
Tipo de Click Especifica el tipo de clic del mouse (simple, doble, mantener, soltar) que se usa al simular el evento de clic. Por defecto, se selecciona un solo clic. Click Doble
Botón de Mouse El botón del mouse (izquierdo, derecho, medio) utilizado para la acción de clic. Por defecto, el botón izquierdo del ratón está seleccionado. Botón Izquierdo
Identificador de la ventana Escribir solo si desea controlar más de una ventana. Por defecto es ‘DEFAULT’ ventana1
Imagen de ejemplo

💡Nota:
Para utilizar correctamente este comando, con Desktop Recorder tendrá que grabar la aplicación a la que requiere conectarse así como las acciones que quiere realizar en ella. Al importar la grabación .json visualizará el comando creado, el cual ya viene con los datos necesarios como el selector de la app grabada.




Arrastrar a la imagen

Virtualización \ Arrastrar hasta imagen

Este comando se utiliza para mover el mouse sobre una imagen específica dentro de un elemento de la interfaz de usuario mientras se mantiene presionado. Es un comando muy útil cuando quieres interactuar con un elemento en la pantalla que no se puede seleccionar fácilmente mediante métodos tradicionales, como botones o enlaces.

Datos de entrada Descripción Ejemplo
Ajustar a la resolución de ejecución Check si se quiere ajustar a la resolución de la ejecución
Posición Posición donde se dará click, puede elegir entre: Center, Top, Center Top, Right, Center Right, Bottom, Center Bottom, Left y Center Left. Center
Precisión Precisión de la búsqueda de imágenes. Generalmente utilizamos 0.8 o 0.7 que corresponde al 80% o 70% de exactitud en cuanto a la imagen. 0.8
Escala de grises Si se selecciona , buscará la imagen en escala de grises. No
Mín. Tiempo de búsqueda Segundos a esperar para que aparezca la imagen. 3
Texto Opcional. Palabra donde se encuentra la imagen.
Imagen de ejemplo

💡Nota:
Una vez que el comando toma la captura de pantalla, los parámetros Imagen de referencia y Hacer click se asignan automáticamente al dar click en Seleccionar Referencia y Seleccionar Foco respectivamente.




Mover a la imagen

Virtualización \ Mover a la imagen

Este comando se utiliza para mover el mouse sobre una imagen específica dentro de un elemento de la interfaz de usuario. Es un comando muy útil cuando quieres interactuar con un elemento en la pantalla que no se puede seleccionar fácilmente mediante métodos tradicionales, como botones o enlaces.

Datos de entrada Descripción Ejemplo
Ajustar a la resolución de ejecución Check si se quiere ajustar a la resolución de la ejecución
Posición Posición donde se dará click, puede elegir entre: Center, Top, Center Top, Right, Center Right, Bottom, Center Bottom, Left y Center Left. Center
Precisión Precisión de la búsqueda de imágenes. Generalmente utilizamos 0.8 o 0.7 que corresponde al 80% o 70% de exactitud en cuanto a la imagen. 0.8
Escala de grises Si se selecciona , buscará la imagen en escala de grises. No
Mín. Tiempo de búsqueda Segundos a esperar para que aparezca la imagen. 3
Texto Opcional. Palabra donde se encuentra la imagen.
Imagen de ejemplo

💡Nota:
Una vez que el comando toma la captura de pantalla, los parámetros Imagen de referencia y Hacer click se asignan automáticamente al dar click en Seleccionar Referencia y Seleccionar Foco respectivamente.




Ejecutar archivo Powershell

Scripts \ Ejecutar archivo Powershell

Este comando se utiliza para abrir, leer y ejecutar un archivo ‘.ps1’ pasando los argumentos necesarios para hacerlo.

Datos de entrada Descripción Ejemplo
Archivo .PS1 La ruta al archivo PS1 C:/Users/User/Documents/file.ps1
Argumentos Si necesita pasar argumentos al script, puede proporcionarlos aquí. Este parámetro es opcional, por lo que puedes dejarlo en blanco. arg1
Imagen de ejemplo del comando




Ejecutar archivo de script de Visual Basic

Scripts \ Ejecutar archivo de script de Visual Basic

Este comando se utiliza para abrir, leer y ejecutar un archivo ‘.vbs’ pasando los argumentos necesarios para hacerlo.

Datos de entrada Descripción Ejemplo
VBS file Ruta al archivo VBS C:/Users/User/Documents/file.vbs
Arguments  Si necesita pasar argumentos al script, puede proporcionarlos utilizando este parámetro. Este parámetro es opcional, por lo que puedes dejarlo en blanco. arg1, arg2, arg3
Encoding type Tipo de codificación para decodificar el resultado utf-8
Asignar resultado a variable Variable donde se guardará el resultado {res}
Imagen de ejemplo




Obtener Proceso

Sistema \ Obtener Proceso

Este comando le permite recuperar una lista de todos los procesos actualmente en ejecución en su máquina que coinciden con la condición especificada. Para utilizar este comando debe proporcionar la condición y el valor para filtrar los procesos, puede ser el nombre o PID del proceso a filtrar.

Dato de entrada Descripción Ejemplo
Condición  Condición para filtrar los procesos. Puede ser PID o Name Name
PID o Nombre Valor para filtrar los procesos. Puede ser PID o Name Excel
Variable Variable donde se almacenará el resultado del comando {var}

Este comando es útil cuando se necesita recopilar información sobre un proceso que se ejecuta en segundo plano, por ejemplo, para monitorear cualquier proceso específico que pueda estar consumiendo mucho de memoria o recursos de CPU.

Imagen de ejemplo