• No se han encontrado resultados

Manual de Comandos y Buenas Prácticas

N/A
N/A
Protected

Academic year: 2022

Share "Manual de Comandos y Buenas Prácticas"

Copied!
157
0
0

Texto completo

(1)

Manual de Comandos y Buenas Prácticas 0

Robot 1

Buenas prácticas 1

Descripción en Comandos 1

Nombre del Robot 1

Variables 2

Nombre de Variables 2

Limpiar Variables 2

Reglas de Variable 3

Variables heredadas Padre-Hijo 5

Credenciales 6

Validaciones 7

Cerrar Procesos 9

Web 10

Abrir navegador 10

Buenas prácticas 10

Error común 11

Cerrar Navegador 12

Buenas prácticas 12

Abrir una URL 13

Javascript 14

Inyectar librería JS 14

Ejecutar archivo JS 16

Ejecuta JS 18

Cambiar a IFRAME 22

Cambiar a Contenido por defecto 25

Seleccionar un objeto 26

Extraer texto 27

Extraer tabla 29

Obtener el valor de input 31

Obtener imagen de objeto 32

Enviar Texto Web 34

(2)

Contar ventanas 37

Cerrar ventana 38

Obtener handle de ventana 40

Obtener título de ventana 41

Cambiar a ventana 42

Buenas prácticas 43

Cambiar de navegador 44

Maximizar 45

Minimizar 46

Esperar Por Objeto 47

Buenas prácticas 48

Sistema 50

Esperar 50

Asignar Variable 51

Último estado. 52

Ingreso de Información Web 53

Ejecutar aplicación. 54

Scripts 55

Ejecutar archivo Python 55

Execute Python 56

Ejecutar JSON Rocketbot 57

Buena práctica 57

Ejecuta otro script RocketBot 58

Buenas prácticas 59

Retornar Información 63

Detener este robot 65

Detener todo y salir 66

Desktop 67

Mover Mouse 67

Buena práctica 67

Mouse Srcoll 68

(3)

Buenas prácticas 76

While 78

Buenas prácticas 78

Break 79

For 80

Try Catch 81

Archivos 82

Guardar texto en archivo 82

Control de archivos 83

Mover o renombrar archivo 83

Copiar Archivo 84

Borrar archivo 85

Listar archivos 86

Listar carpetas 87

Enviar a papelera 88

Compresión de archivos 89

Comprimir un archivo o una carpeta en un ZIP 89

Descomprimir ZIP 90

PDF 91

Extraer texto de PDF 91

Convertir imagen a PDF 92

Agregar imagen a PDF 93

XLSX 94

Nuevo xlsx 94

Buenas prácticas 95

Abrir xlsx 96

Buenas prácticas 96

Guardar xlsx 97

Obtener Hojas 98

Cambiar de Hoja 99

Cambiar de Archivo 100

Contar Filas 101

Buenas prácticas 101

Contar Columnas 102

Obtener celda 103

Buenas prácticas 103

Escribir Celda 104

Virtualización 105

(4)

OCR a imagen 110

Esperar por imagen 111

Buenas prácticas 111

Tips 111

Windows 112

macOS 118

MySQL 120

Configurar conexión Mysql 120

Buenas prácticas 120

Consulta MySQL 121

Buenas prácticas 121

Email 121

SMTP - IMAP 122

Configurar servidor 122

Buenas prácticas 122

Enviar Email SMTP 124

Listar todos los email IMAP 125

Listar email nuevos IMAP 127

Leer email por ID IMAP 128

Conexión HTTP 129

Conectar url GET 129

Conectar URL avanzado 130

Integración con Aplicaciones 132

Excel 132

Nuevo Libro 132

Buenas prácticas 133

Abrir archivo 134

Buenas prácticas 134

Guardar Archivo 135

Buenas prácticas 135

Exportar a PDF 136

(5)

Cerrar Excel 145

Buenas prácticas 145

Logs en Rocketbot 146

Estructura de Logs de Rocketbot 146

Visualizar errores en Rocketbot 147

Recomendaciones para generar Logs. 148

Robots en Paralelo 149

Escritorio Remoto 151

Buenas prácticas 151

(6)

Robot

Buenas prácticas

Descripción en Comandos

Agregar descripciones en los comandos nos ayuda a comprender cuál es la acción específica que este realiza, lo que es de suma importancia a la hora de modificar un robot, ya sea para cambiar funcionalidades o identificar posibles errores.

Nombre del Robot

Nunca utilizar espacios, ñ, ni caracteres especiales en el nombre del robot, si el nombre fuera compuesto por varias palabras puede utilizarse el siguiente formato: snake_case, camelCase o PascalCase.

(7)

Variables

Nombre de Variables

En la definición de variables nunca se deben utilizar espacios, ñ, o caracteres especiales, en caso de utilizar palabras compuestas se pueden utilizar guiones bajos o comenzar la siguiente palabra con Mayúscula como por ejemplo: snake_case, camelCase o PascalCase.

Limpiar Variables

Es buena práctica limpiar las variables que no requieren valores fijos, al principio de nuestro bot, es recomendable utilizar el comando “Limpiar Variable(s)” del módulo System++, ya que si limpiamos una por una tendremos un comando por cada variable, lo que se pueden reducir a sólo uno con la siguiente instrucción:

Documentación de Rocketbot Studio 2

(8)

Reglas de Variable String

Cuando queremos trabajar con variables de tipo String en Rocketbot, debemos pasarlas a comillas dobles, ejemplo.

Tenemos una variable llamada {texto} la cual contiene lo siguiente:

Si queremos por ejemplo modificar parte del texto, podemos utilizar el método de string1 llamado replace(), en este caso si solo pasamos la variable, nos arrojará un error de sintaxis:

Debemos indicar que la variable {texto} la trabaje como un string, y para eso debemos pasarla entre comillas dobles “{texto}”.

Si además nuestra variable es un string pero contiene saltos de líneas, entonces

(9)

Si volvemos a ejecutar el comando anterior, nos arrojará un error:

Al pasarla a triple comilla doble y espacios, ejecutará el método sin problema:

Documentación de Rocketbot Studio 4

(10)

Variables heredadas Padre-Hijo

Las variables del PADRE pueden ser utilizadas por todos los robots de la imagen, el HIJO1 por ejemplo, no puede utilizar las variables de sus hermanos (HIJO2-HIJO3), el NIETO1 puede usar las variables del PADRE y del HIJO1, pero no las del HIJO2 - HIJO3

(11)

Credenciales

Como buena práctica es importante utilizar un baúl de credenciales para obtener los datos y no dejarlos fijos.

Si tenemos Mac o Linux, podemos utilizar el siguiente móduloCredentials_, si estamos en Windows, debemos usar el siguiente:Windows Credential Manager.

Podemos encontrar más información acerca de cómo realizarlo, en la documentación de los manuales linkeados arriba.

Documentación de Rocketbot Studio 6

(12)

Validaciones

Se deben validar todos los comandos y/o módulos que lo permitan, por ejemplo si es una conexión a una BD, Correo, FTP, Abrir un Archivo, etc. se debe retornar a una variable y tomar una decisión con un IF.

Esto nos permite poder controlar errores y tomar una decisión para que el robot no continúe ejecutándose cuando faltan partes del proceso o cuando no se realizó algo de forma correcta.

Ejemplo:

Crear un archivo excel y validar su correcta creación, si está ok, entonces se escribe en el archivo, sino, se deja un mensaje en el log y se detiene el robot.

(13)

Luego realizamos el guardado del archivo, y se valida, si se guardó de forma correcta, entonces cerramos la aplicación, sino, se deja un mensaje en el log y se detiene el robot.

Documentación de Rocketbot Studio 8

(14)

Cerrar Procesos

Todos los comandos y/o módulos que permitan cerrar conexiones, se deben agregar al proceso, por ejemplo, cerrar una conexión a una BD, a un FTP, Correo, Cerrar un archivo Excel, XML, etc.

Es necesario siempre cerrar todo lo que se abre con Rocketbot, ya que esto nos permite liberar recursos y evitar errores de ejecución, si el comando o módulo no permite cerrar la conexión o los procesos no son cerrados de forma correcta, se pueden utilizar los

módulos killProcess y/o killApp para terminar de matar procesos zombies.

Ejemplo de un error:

Problema

No se realizó la ejecución de bots desde el Orquestador dado que un proceso no finalizó.

Causa

No llega la respuesta de proceso finalizado al Orquestador. Esto ocurre cuando se trabaja con un proceso que queda en segundo plano o no finaliza al terminar el robot.

Por ejemplo, abrir alguna aplicación.

Solución

Agregar el comando killProcess y/o killApp al final del flujo para que cierre cualquier proceso zombie que pudiera estar activo e impida notificar al Orquestador el término del proceso.

(15)

Web

Abrir navegador

Opciones:

Selecciona navegador: Chrome/Firefox/IE

URL de Servidor: Indicar la url de la página a la cual queremos acceder (Si no se elige ninguna abre por defecto https://www.google.com). Admite variables

Modo de Apertura: Síncrona/Asíncrona.

Sincrónico es el método normal de apertura, el cual espera para continuar con los comandos, no se debe cambiar.

Buenas prácticas

Es óptimo agregar la url en una variable, pensando en escalabilidad, si en algún

momento se requiere que la variable sea dinámica o si necesita cambiar, lo ideal es que Rocketbot lea algún archivo de configuración y setear el valor a la variable para no estar abriendo y modificando el robot.

Documentación de Rocketbot Studio 10

(16)

Error común

Los navegadores son controlados por web drivers, estos se encuentran dentro de la carpeta Rocketbot/drivers/{sistema operativo}/{browser}, los mismos deben ser actualizados si se actualiza la versión del navegador y el robot comienza a presentar problemas.

Los drivers los puedes encontrar enhttps://www.seleniumhq.org/download/

Error de driveral intentar abrir navegador, esto sucede cuando el navegador se actualiza, para solucionarlo se debe actualizar el driver según la versión del browser.

Chrome:https://chromedriver.chromium.org/downloads

Mozilla:https://github.com/mozilla/geckodriver/releases/tag/v0.29.0 Descargar y descomprimir el driver, copiar el archivo en la siguiente ruta:

Rocketbot/drivers/{sistema operativo}/{browser}

Ej: Rocketbot/drivers/win/chrome

(17)

Cerrar Navegador

Nos permite cerrar el navegador abierto con Rocketbot, cierra todo incluyendo las pestañas abiertas.

Buenas prácticas

Siempre que realicemos un robot de tipo Web, y ya no necesitemos utilizar más el navegador, debemos agregar el comando Cerrar Navegador, ya que esto además de cerrar el Browser, mata el proceso del driver abierto con Rocketbot. El cual se abre en cada ejecución, por lo que si no se mata y se acumulan demasiados, podría consumir bastante recurso de la máquina.

**Todo lo que se abre con Rocketbot, es óptimo que se cierre al final del proceso o cuando ya no se utilice más, ej: navegador, conexión a BD, conexión a email, Excel, etc.

Documentación de Rocketbot Studio 12

(18)

Abrir una URL

Se debe utilizar cuando ya realizamos todas las acciones en la página que se abrió con el comando “Abrir Navegador” y necesitamos cambiar a otra página. Esto redireccionará la actual pestaña a la nueva URL indicada.

(19)

Javascript

Inyectar librería JS

Inyecta el código Javascript de una librería a partir de su URL, en el documento actual o IFRAME si se encuentra dentro del IFRAME.

Por ejemplo, si accedemos a una página, en este caso google.com, y necesitamos utilizar la librería moment.js, podemos comprobar en la consola del navegador si la tiene o no.

En este caso no está:

buscamos el cdn de la librería y copiamos su URL

Documentación de Rocketbot Studio 14

(20)

Lo pegamos en el comando y ejecutamos

Si volvemos a ejecutar moment en la página, veremos que ahora si nos responde:

(21)

Ejecutar archivo JS

Inyecta el código Javascript de un archivo guardado en su equipo, lo inyectará en el documento actual o IFRAME si se encuentra dentro del IFRAME.

Al igual que en el ejemplo anterior, intentamos utilizar moment.js en la página de Google, obteniendo el siguiente error:

Buscamos el archivo JS y ejecutamos el comando

Documentación de Rocketbot Studio 16

(22)

Intentamos utilizar la misma instrucción y ahora podemos ver que si la reconoce:

(23)

Ejecuta JS

Podemos ejecutar código JS directamente desde Rocketbot, a través de la mini consola.

Por ejemplo si queremos enviar un valor a un input, podemos utilizar un identificador del mismo (en este ejemplo el identificador es un ID llamado empresa) y enviarlo de esta forma:

Documentación de Rocketbot Studio 18

(24)

Si necesitamos obtener un resultado desde la página hacia Rocketbot, debemos utilizar el return y asociar la respuesta a una variable.

Por ejemplo acá requerimos obtener el Nombre del artículo, al inspeccionar vemos que tiene una clase, la cual utilizaremos.

(25)

De esta forma y con innerText estamos obteniendo el texto y asignándolo a la variable {titulo}

Obtendremos el texto de esta forma:

Documentación de Rocketbot Studio 20

(26)

Importante: Para utilizar esta variable como STRING se debe utilizar {variable}.decode() o {variable}.decode(‘latin-1’) en el comando Asignar Variable.

Quedará de esta forma y ya podemos utilizar la información correctamente:

(27)

Cambiar a IFRAME

Mueve el focus al IFRAME seleccionado. Ahora todos los comandos JS o acceso a objetos web tomará como referencia el IFRAME seleccionado.

En este ejemplo requerimos realizar un click en el input empresa:

pero nos arroja el siguiente error:

Nos indica que no encuentra el elemento, uno de los errores más comunes es que se encuentre dentro de un iframe, por lo que debemos buscar si el elemento está dentro de alguna etiqueta <iframe>

Documentación de Rocketbot Studio 22

(28)

Vemos que el input está dentro de un IFRAME, por lo que debemos utilizar el comando indicando algún identificador del mismo, en este caso usaremos el ID.

(29)

Este comando debe ir antes de que interactuemos con el elemento, al ejecutarlo

dejaremos en foco este IFRAME y luego al ejecutar el click ya funcionará correctamente.

Documentación de Rocketbot Studio 24

(30)

Cambiar a Contenido por defecto

Mueve el focus al cuerpo del documento. Ahora todos los comandos JS o acceso a objetos web tomará como referencia el cuerpo de la página.

Siguiendo con el ejemplo anterior, si ahora requerimos volver el foco a la página por defecto y salir del IFRAME, debemos utilizar el comando.

(31)

Seleccionar un objeto

Selecciona un elemento al cual queremos enviar eventos de teclado a través del comando “Enviar texto Web”. Por ejemplo acá necesitamos seleccionar el País “Chile”, vemos que tiene un ID, por lo cual lo utilizaremos en el comando.

Al ejecutarlo no veremos que se marca el input en la web, pero al enviar el texto con

“Enviar Texto Web” seleccionará la opción requerida.

Documentación de Rocketbot Studio 26

(32)

Extraer texto

Podemos extraer el texto de un elemento, por ejemplo: <div>, <span>, <p>, <a>, etc, y retornarlo a una variable.

**Para obtener el texto de un input, se debe utilizar el comando “Obtener el valor de input”

En este caso necesitamos extraer el texto de la búsqueda, al inspeccionar el elemento, vemos que tiene una etiqueta <span>.

(33)

Obtenemos su xPath e ingresamos la información al comando, enviando el resultado a una variable, por ejemplo {texto}.

Al ejecutar y revisar nuestra variable, veremos el texto extraído:

Documentación de Rocketbot Studio 28

(34)

Extraer tabla

Podemos extraer la información de una tabla con la etiqueta <table> y guardarla en una variable, se obtendrá como una lista (array). Inspeccionamos y buscamos la etiqueta

<table>, obtenemos algún identificador y lo ingresamos en el comando.

Opcional: Podemos codificar los elementos del array e indicar el tipo de codificación:

(35)

Al ejecutar y revisar nuestra variable, veremos la tabla extraída:

Tip:

Nos traerá la información como una lista de listas, si la quisiéramos pasar a un Excel (comandos de Integración con aplicaciones) nos podría arrojar un error si los ítems no tienen el mismo largo, por ejemplo vemos que la lista donde se encuentra el mes “Mayo”

solo tiene un valor en comparación con las demás listas que tienen 6. Se podría por ejemplo separar la información, dejando en una variable el mes y en otra solo los valores, de esta forma:

Documentación de Rocketbot Studio 30

(36)

Obtener el valor de input

Podemos obtener el valor de un input, puede ser de la etiqueta <input type=”text”> o

<textarea> y lo almacena en una variable.

Por ejemplo, en este caso tenemos un formulario con información pre cargada

inspeccionamos y obtendremos el identificador del input para extraer su información.

Ingresamos la información en el comando y ejecutamos:

Revisamos la variable y veremos el valor extraído:

(37)

Obtener imagen de objeto

Extrae una captura de pantalla del objeto según una referencia, manteniendo su tamaño original.

Este comando fue ideado para obtener capturas de captchas y poder resolverlos por medio de librerías externas.

**Considerar tener la resolución de pantalla y el navegador al 100%

En esta página tenemos una imagen, la cual necesitaríamos obtener para luego poder resolver el captcha.

Inspeccionamos y obtenemos el identificador de la imagen, lo ingresamos al comando y ejecutamos.

Documentación de Rocketbot Studio 32

(38)

Con esto obtendremos la imagen descargada en la ruta indicada:

Con esa imagen ya podemos utilizar por ejemplo el módulo2Captchapara poder resolverlo.

(39)

Enviar Texto Web

Este comando solo acepta una opción, si se escribe un texto (o una variable con texto) no se puede agregar una tecla especial al mismo tiempo, o no funcionará. Al revés lo mismo, si queremos enviar una tecla especial, no podemos también pasar un texto, en ese caso se debe repetir el comando, de esta forma:

Texto

Tecla Especial

Documentación de Rocketbot Studio 34

(40)

Click en objeto

Nos permite clickear un objeto en el documento actual, enviando el click izquierdo del mouse.

Si se requiere realizar un click a un elemento que esté dentro de un IFRAME, se debe utilizar el comandoCambiar a IFRAME.

En este ejemplo queremos clickear el input Empresa, obtenemos un identificador, en este caso el ID.

Lo agregamos al comando y ejecutamos, esto dejará el input en foco.

(41)

Obtener código HTML

Nos permite obtener el código HTML de la ventana actual del navegador activo abierto por Rocketbot, y almacenar el resultado en una variable.

Nos entregará un resultado como este:

Documentación de Rocketbot Studio 36

(42)

Control de ventanas

Contar ventanas

Nos permite contar la cantidad de ventanas (pestañas) abiertas en el navegador de Rocketbot y almacenar el resultado en una variable.

En este caso tenemos dos pestañas:

Agregamos la variable donde queremos retornar el resultado:

Nos entregará lo siguiente:

(43)

Cerrar ventana

Nos permite cerrar una ventana (pestaña) del navegador de Rocketbot, a través de su nombre o con la opción “last”, lo cual cerrará la última ventana abierta.

Siguiendo con el ejemplo anterior, para cerrarla podemos indicar el nombre:

Quedando así:

Documentación de Rocketbot Studio 38

(44)

O con la opción “last” para la última ventana:

Quedando así:

(45)

Obtener handle de ventana

Obtiene el handle de la ventana (pestaña) activa abierta por Rocketbot y lo almacena en una variable.

**Considerar que el handle es variable, al volver a entrar éste cambiará.

Obtendremos algo como esto:

Documentación de Rocketbot Studio 40

(46)

Obtener título de ventana

Obtiene el título de la ventana activa del navegador abierto por Rocketbot y lo guarda en una variable.

Obtendremos algo como esto:

(47)

Cambiar a ventana

Cuando la página que estamos controlando abre otra ventana (al clickar un botón, enlace, etc.) este comando nos permite cambiarnos a la nueva pestaña y dejarla en foco para poder trabajar con los elementos.

En este ejemplo tenemos en foco la primera pestaña (google),

si queremos hacer un click en la página de Rocketbot (pestaña 2), por ejemplo al botón Descargar, obtendremos un error como este, donde nos indica que no se encuentra el elemento.

Debemos entonces primero cambiarnos de ventana y una vez quede en foco ya podremos realizar el click. Podemos cambiarnos indicando el handle o una de las siguientes opciones las cuales indican la posición de las pestañas abiertas:

Documentación de Rocketbot Studio 42

(48)

Secuencia:

Buenas prácticas

Cada vez que nos cambiamos a otra ventana debemos utilizar el comandoEsperar por Objetocon su respectivo IF de validación, ya que estamos ingresando a otra página y debemos asegurarnos de que cargó correctamente.

(49)

Cambiar de navegador

Nos permite cambiarnos a otro navegador abierto con Rocketbot, para poder utilizarlo, cuando abrimos el navegador debemos indicar un identificador en la pestaña “Extra”.

Luego para poder dejar el otro navegador en foco y poder controlarlo, debemos indicar el identificador en el comando:

Documentación de Rocketbot Studio 44

(50)

Maximizar

Nos permite maximizar la ventana del navegador abierto por Rocketbot.

No contiene ninguna opción, solo se debe agregar:

(51)

Minimizar

Nos permite minimizar la ventana del navegador abierto por Rocketbot.

No contiene ninguna opción, solo se debe agregar:

Documentación de Rocketbot Studio 46

(52)

Esperar Por Objeto

Este comando permite esperar por un elemento en la web, dándole segundos máximos de espera hasta que nos retorna una respuesta (True o False, si lo encontró o no respectivamente). Se debe utilizar siempre que abrimos el navegador para confirmar si la página realmente cargó, también cuando clickeamos algún enlace o botón y nos abre otra pestaña, en general siempre que “cambiemos” de página, para así validar que cargó y los elementos ya existen.

Opciones:

Dato a buscar: Valor del identificador del elemento.

Tipo de dato: Tipo de identificador del elemento.

Esperar Antes: Cantidad de segundos antes de que el comando “Esperar por Objeto” se ejecute. Es una espera fija, la cantidad de segundos que definamos se respetarán si o si, por lo cual se recomienda que sean tiempos bajos, ojalá no más de 2-5 segundos.

Acción Esperar máx: Cantidad de segundos máxima que esperará el elemento.

Es una espera variable, si ingresamos 10 segundos, no significa que los esperará si o si, sino que como máximo esperará esa cantidad, si nuestro elemento aparece antes en la página, entonces obtendremos antes nuestra respuesta y se continuará con el siguiente comando, en cambio, si nuestro elemento no aparece, estará consultando hasta que se cumplan los 10 segundos y luego nos retornará un False en nuestra variable.

Esperar Después: Cantidad de segundos que esperará luego de que se ejecute el comando “Esperar por Objeto” y continúe con el siguiente. Es una espera fija, la cantidad de segundos que definamos se respetarán si o si, por lo cual se recomienda que sean tiempos bajos, ojalá no más de 2-5 segundos.

Asignar resultado a variable: Variable donde retornaremos el valor de si encontró o no el elemento dentro de los segundos asignados (True o False).

(53)

En este caso se está esperando 10 segundos a que aparezca el input de Google para realizar una búsqueda.

Buenas prácticas

Esperar Antes y Esperar Después: Son tiempos fijos, y son campos opcionales, en caso de utilizarlos, se deben indicar tiempos bajos (ej: 2-5 segundos), ya que utilizar esperas fijas no es buena práctica.

Acción Esperar máx: Es un tiempo variable, y es un campo obligatorio, siempre debe ir un valor ya que sino se indica, el comando no estará cumpliendo su función, como es un tiempo variable y no fijo, a diferencia de los dos inputs indicados arriba, el tiempo indicado debe ser más amplio.

Siempre que utilizamos Esperar por Objeto al inicio de nuestro flujo, se debe utilizar el comando IF del menú lógica, ya que tendremos una respuesta (True o False) en nuestra variable, en este ejemplo, llamada {wait}, con esa respuesta debemos tomar una decisión, qué hacer si es True (seguir el flujo normal) o qué hacer si es False (arrojar excepción, escribir en un log, informar por correo, etc.)

La secuencia sería la siguiente:

● Abrir la página de google.

● Esperar 10 segundos máximo a que el input de búsqueda cargue en la página.

● Tomar una decisión con el IF

○ True: Clickear el input de búsqueda, enviar el texto a buscar y realizar un Enter.

○ False: Cerrar el navegador y detener el robot.

Documentación de Rocketbot Studio 48

(54)
(55)

Sistema

Esperar

Hace esperar al sistema por N segundos y luego sigue ejecutando los comandos.

Utilizado para casos especiales, no se recomienda utilizar esperas fijas ya que solo aumentarán el tiempo de ejecución del robot, para Web se debe utilizar Esperar por Objeto y para Desktop con Virtualización se debe utilizar “Esperar por Imagen”

Documentación de Rocketbot Studio 50

(56)

Asignar Variable

Este comando nos sirve para muchas cosas, entre ellas asignar un valor a una variable, modificar una variable, ejecutarmétodos de String de Python, ejecutar acciones con librerías internas de Rocketbot, etc.

Ejemplo:

Podemos utilizar la librería interna datetime y formatear la fecha actual, de esta forma:

Quedando así:

(57)

Último estado.

Con este comando podemos obtener el estado del último comando ejecutado.

Ejemplo:

Continuando con el ejemplo del comando anterior, al ejecutar la instrucción para obtener la fecha del día, agregaremos el comando “Último Estado” e indicaremos una variable donde guardar la información, en este caso llamada {res}

Documentación de Rocketbot Studio 52

(58)

Ingreso de Información Web

Abre una ventana parametrizable, por ejemplo para realizar un login y luego ejecutar el robot.

La URL debe ser tipo file y tiene que ser la ruta completa donde se encuentra el index.

Esto nos abrirá la ventana de esta forma, para que le ingresemos información.

(59)

Ejecutar aplicación.

Podemos abrir cualquier aplicación que se encuentre en el PC mediante su ejecutable, en este ejemplo estamos abriendo Notepad:

Documentación de Rocketbot Studio 54

(60)

Scripts

Ejecutar archivo Python

Ejecuta un archivo Python con las librerías internas que tiene Rocketbot, podemos utilizar las variables de Rocketbot y setearlas con información desde el script.

Ejemplo

En nuestro script obtendremos la variable {fecha} de Rocketbot, le restaremos 1 día y se la enviaremos a la variable {result}:

Archivo python:

Podemos utilizar las variables de Rocketbot llamándolas entre llaves, tal cual las utilizamos en los robots.

Para devolver un valor desde el script hacia el robot, debemos utilizar SetVar() donde primero indicamos entre comillas el nombre de la variable en Rocketbot y luego el valor que le queremos asignar.

(61)

Execute Python

Con este comando podemos ejecutar código python con las librerías básicas incluidas.

Ejemplo:

Utilizaremos la librería random para obtener un número aleatorio y guardarlo en una variable a través de SetVar().

Resultado:

Documentación de Rocketbot Studio 56

(62)

Ejecutar JSON Rocketbot

Ejecuta un robot de Rocketbot exportado a JSON. Al descargar un robot mediante la pestaña Robot->Guardar en archivo Json, este se bajará con extensión .json, y podríamos ejecutar el robot indicando la ruta donde se encuentra ubicado el archivo.

Sin embargo este comando está deprecado y no es óptimo utilizarlo.

Buena práctica

Para ejecutar otro robot como un bot hijo, se debe utilizar siempre el comandoEjecuta otro script Rocketbot, quien lo llama directamente desde la BD.

(63)

Ejecuta otro script RocketBot

Este comando nos sirve para llamar un robot desde otro, donde podemos compartir variables y dividir tareas entre cada robot.

Nos mostrará todos los robot que tenemos en nuestra base de datos para ejecutarlos.

Documentación de Rocketbot Studio 58

(64)

Buenas prácticas

Como buena práctica siempre es recomendado seccionar el flujo (proceso), en varios mini-bots. Esto facilita el poder modificar el proceso, revisar dónde está fallando, corregirlo y reutilizar comandos.

Ejemplo:

Un robot principal (padre), que abra un navegador con una url, luego un mini robot (hijo_descarga), que descargue un archivo y otro mini bot (hijo_mail) que tome el archivo y lo envíe por mail.

Robot “padre”:

1. Abre el navegador con una URL específica.

2. Maximiza la ventana.

3. Ejecuta un robot hijo (hijo_descarga).

4. Cierra el navegador.

Variables:

N/A

(65)

Documentación de Rocketbot Studio 60

(66)

Robot “hijo_descarga”:

1. Cuenta la cantidad de archivos existentes en la carpeta de Descarga.

2. Realiza click en el botón Descargar de la página abierta.

3. Espera hasta que la descarga haya finalizado.

4. Ejecuta un robot hijo (hijo_mail)

Variables:

(67)

Robot “hijo_mail”:

1. Configura un correo Gmail.

2. Envía un correo adjuntando el archivo descargado en el robot anterior (utilizando la variable {path} del robot hijo_descarga).

Variables:

Documentación de Rocketbot Studio 62

(68)

Retornar Información

Este comando es útil para enviar información a un robot Padre. El robot principal debe llamar al robot hijo con la instrucción rocket.start().

Ejemplo:

Tenemos un robot padre, el cual contiene una variable {res} que será donde recibiremos la respuesta desde el robot llamado Retorna_Info

En el robot padre ejecutaremos el otro robot mediante el comando Asignar Variable con la instrucción rocket.start() e indicaremos la variable donde guardaremos la información obtenida, en este caso {res}

(69)

En el robot hijo (Retorna_Info) tendremos el comando Retornar Información con los siguientes datos de ejemplo:

Podemos enviar cualquier tipo de información, string, booleanos, diccionarios, listas, etc.

Cuando el padre ejecute al hijo, recibirá la información en su variable {res}

Documentación de Rocketbot Studio 64

(70)

Detener este robot

Detiene la ejecución del robot actual y continúa con los siguientes, para utilizarlo solo se agrega el comando.

(71)

Detener todo y salir

Este comando detiene el Script en curso y sus padres.

Documentación de Rocketbot Studio 66

(72)

Desktop

Mover Mouse

Mueve el mouse hasta la posición indicada por coordenadas X e Y (ej: 1045,207).

Para obtener las coordenadas podemos utilizar el comando Obtener coordenadas del mouse.

Buena práctica

Este tipo de instrucciones no se deben utilizar en procesos Web, son para utilizarlas en automatizaciones de aplicaciones de escritorio, sin embargo si requerimos mover el mouse para realizar algún click, es mejor utilizar el comandoClick en Imagen, el cual busca la imagen en toda la pantalla, por lo tanto si el objeto cambia de posición lo

encontrará igualmente, no así Mover Mouse, que solamente irá a una posición específica.

(73)

Mouse Srcoll

Este comando realiza Scroll con el Mouse hasta X clicks.

Documentación de Rocketbot Studio 68

(74)

Obtener Coordenadas del Mouse

Obtiene las coordenadas de la posición donde se encuentra el cursor y las guarda en una variable.

Segundos de espera: segundos que esperará antes de obtener las coordenadas, lo que nos permite mover el cursor a la posición deseada.

Asignar resultado a variable: Variable donde guardaremos las coordenadas obtenidas.

(75)

Mouse Click

Hace click en donde está posicionado el Mouse, si queremos que lo realice en un lugar específico, debemos utilizar primero el comando Mover Mouse para indicarle la posición y una vez esté donde lo queremos, utilizamos Mouse Click.

Podemos utilizar:

left -> para hacer click con el botón izquierdo

right -> para hacer click con el botón derecho

middle -> para hacer click con el botón central del Mouse

Buena práctica

Este tipo de instrucciones no se deben utilizar en procesos Web, son para utilizarlas en automatizaciones de aplicaciones de escritorio, sin embargo si requerimos realizar algún click, es mejor utilizar el comandoClick en Imagen, el cual busca la imagen en toda la pantalla, por lo tanto si el objeto cambia de posición lo encontrará igualmente, no así Mouse Click, que solamente lo hará en una posición específica.

Documentación de Rocketbot Studio 70

(76)

Alerta

Este comando muestra un cartel de mensaje y pausará la ejecución del robot hasta que se de click en el botón Aceptar.

También podemos imprimir los valores de nuestras variables en tiempo de ejecución, esto nos sirve para validar si nos está trayendo la información correcta o no.

Nos mostrará la ventana de alerta con el valor que tiene la variable que ingresamos:

(77)

Notificación.

Genera una notificación de sistema, a diferencia del comando Alerta, esta Notificación se mostrará por unos segundos y luego desaparecerá.

Se le puede pasar una imágen para que la muestre como ícono.

Ejemplo:

Documentación de Rocketbot Studio 72

(78)

Captura de pantalla.

Obtiene una captura de pantalla de toda la pantalla.

Sólo debemos pasar la ruta donde queremos guardar la captura, indicando el nombre y la extensión (.png o .jpg).

(79)

Enviar Tecla

Al igual que el comando Enviar Texto Web éste sólo acepta una opción, si se escribe un texto (o una variable con texto) no se puede agregar una tecla especial, o no funcionará.

Al revés lo mismo, si queremos enviar una tecla especial, no podemos también pasar un texto.

Buenas prácticas

No utilizar este comando en automatizaciones Web, en ese caso se debe utilizar Enviar Texto Web, ni en aplicaciones Office (Excel, Word, Powerpoint) para ellas se deben utilizar los menús o módulos respectivos.

Documentación de Rocketbot Studio 74

(80)

En el input de Texto, podemos concatenar un texto y una tecla, de la siguiente forma:

Si se necesita repetir la misma tecla varias veces, también se puede indicar de esta forma:

(81)

Lógica

IF

La sentencia if se utiliza para ejecutar un bloque de código si, y sólo si, se cumple una determinada condición. Por lo tanto, IF es usado para la toma de decisiones.

Buenas prácticas

Nunca se debe dejar un IF vacío y poner solo la lógica en el Else, esto no es permitido en Python por lo tanto producirá fallos en nuestro robot.

Ejemplo:

Documentación de Rocketbot Studio 76

(82)

La forma correcta es la siguiente, donde el Else si puede ir vacío:

(83)

While

Con la sentencia While podemos ejecutar un ciclo mientras se cumpla una condición, lo cual nos permite ejecutar instrucciones múltiples veces.

Buenas prácticas

La condición debe estar relacionada con una variable que tenga un cambio en la condición para que en algún momento esta se cumpla y se termine el ciclo, sinó se corre el riesgo de generar un bucle infinito.

Documentación de Rocketbot Studio 78

(84)

Break

Este es un comando que no tiene ningún parámetro. Se utiliza dentro de los Ciclos For o While, el comando Break termina el ciclo que la contiene. El flujo del Robot sigue el comando inmediatamente después del cuerpo del ciclo. Si la instrucción break está dentro de un ciclo anidado (ciclo dentro de otro ciclo), la declaración break terminará el ciclo más interno.

(85)

For

Un bucle for es un bucle que repite el bloque de instrucciones un número predeterminado de veces, podemos indicar un número con la opción range(), o si indicamos una lista, se ejecutará tantas veces como elementos contenga.

En el selector Variables, debemos indicar una variable donde irá quedando cada elemento que contenga el elemento iterable.

Podemos encontrar más información respecto a los ciclos en ladocumentación de Python.

Documentación de Rocketbot Studio 80

(86)

Try Catch

Este es un comando que se utiliza para capturar errores, dentro del bloque Try se ubica todo el código que pueda llegar a generar una excepción, el bloque Catch se encarga de capturar la excepción y ejecutar las instrucciones que contenga.

A la primera excepción que encuentre en el bloque Try, no continuará con las demás instrucciones y ejecutará inmediatamente lo que contenga el bloque Catch.

Ejemplo:

(87)

Archivos

Guardar texto en archivo

Este comando nos sirve para pasar información a un archivo, se puede utilizar por ejemplo para crear nuestro propio log e ir almacenando los distintos pasos e información del robot.

Ruta del archivo: Debemos indicar la ruta de nuestro archivo, si no existe se creará.

Modo:

Agregar: Irá adicionando información al archivo, por ejemplo en el caso de crear un archivo log.

Sobreescribir: Irá pisando la información existente en el archivo.

Agregar salto de línea: Podemos seleccionarlo si queremos incluir un salto de línea antes del texto enviado.

Texto: Podemos indicar texto fijo o pasar una variable de Rocketbot.

Documentación de Rocketbot Studio 82

(88)

Control de archivos

Mover o renombrar archivo

Este comando nos permite mover o renombrar un archivo desde una posición a otra, debemos ingresar la ruta y nombre del archivo actual (Desde) y la ruta y nombre hacia donde lo queremos mover (Hacia), también podemos retornar el resultado a una variable donde obtendremos True en caso de que la acción se haya realizado de forma exitosa, o False en caso contrario.

(89)

Copiar Archivo

Este comando nos permite copiar un archivo desde una posición a otra, debemos ingresar la ruta y nombre del archivo original (Desde) y la ruta y nombre hacia donde lo queremos mover (Hacia), a diferencia del comando anterior, en este caso el archivo original se conservará tanto en la ruta de inicio como en la ruta final, también podemos retornar el resultado a una variable donde obtendremos True en caso de que la acción se haya realizado de forma exitosa, o False en caso contrario.

Documentación de Rocketbot Studio 84

(90)

Borrar archivo

Este comando nos permite borrar un archivo de forma definitiva, no llega a la papelera.

Debemos indicar la ruta y nombre del archivo que queremos borrar, en el input Nombre de archivo y además podemos asignar el resultado a una variable. En caso que la operación sea exitosa el resultado será None caso contrario será False.

(91)

Listar archivos

Con este comando podemos obtener una lista con todos los archivos contenidos en una carpeta.

Documentación de Rocketbot Studio 86

(92)

Listar carpetas

Con este comando podemos obtener una lista con todas las carpetas contenidas en una carpeta.

(93)

Enviar a papelera

Con este comando podemos eliminar un archivo y enviarlo directamente a la papelera, además podemos asignar el resultado a una variable. En caso que la operación sea exitosa el resultado será None caso contrario será False.

**En el caso de trabajar en Windows la ruta del Archivo en este comando se debe indicar con barra invertida, por ejemplo C:\Users\user\file.txt

Documentación de Rocketbot Studio 88

(94)

Compresión de archivos

Comprimir un archivo o una carpeta en un ZIP

Este comando nos permite comprimir un archivo o carpeta a .zip, debemos indicar la ruta de lo que queremos comprimir y la ruta y nombre del archivo zip de destino, además podemos retornar el resultado a una variable, si la acción se realizó correctamente obtendremos un True, caso contrario obtendremos un False.

(95)

Descomprimir ZIP

La funcionalidad de este comando es descomprimir un archivo ZIP, para esto debemos indicar la ruta y nombre del archivo a descomprimir y la ruta de destino del archivo ya descomprimido. Adicionalmente podemos guardar el resultado de la ejecución en una variable, si la acción se realizó correctamente obtendremos un True, caso contrario obtendremos un False.

Documentación de Rocketbot Studio 90

(96)

PDF

Extraer texto de PDF

Este comando nos permite extraer el texto de un PDF digital (No pdf tipo imagen, no escaneado) y almacenar el resultado en una variable, también podemos indicar el número específico de página que queremos extraer, si no se indica, por defecto se leerán todas.

(97)

Convertir imagen a PDF

Podemos convertir una imagen a PDF indicando la ruta de donde se encuentra la imagen, y en PDF destino, la ruta donde se creará el Archivo PDF resultante, también le podemos indicar el alto y ancho de la imagen, si se deja vacío se colocarán valores por defecto.

Documentación de Rocketbot Studio 92

(98)

Agregar imagen a PDF

Nos permite adicionar una imagen a un PDF, por ejemplo como un sello de agua o algún código QR, debemos indicar la ruta y nombre de la imagen a agregar y la ruta y nombre del PDF al cual la queremos adicionar, también le podemos indicar el alto y ancho que de la imagen y la posición donde la queremos agregar indicando coordenadas X e Y, si se dejan vacío se colocarán valores por defecto.

(99)

XLSX

Si trabajamos con este menú no es necesario tener instalado Microsoft Excel, ya que no trabaja con la aplicación, abre o crea un archivo en segundo plano y no veremos que este se abra, todo pasará por debajo.

Nuevo xlsx

Nos permite crear un nuevo archivo XLSX en memoria, podemos indicar un Identificador (puede ser un número, letra o palabra) en el caso de que necesitemos crear y trabaja con más de un archivo xlsx abierto por Rocketbot, luego si necesitamos ir moviéndonos entre uno u otro, lo tendremos que realizar a través de su ID, también podemos indicar una variable, donde obtendremos un True si se puedo crear un nuevo archivo o False en caso contrario.

Documentación de Rocketbot Studio 94

(100)

Buenas prácticas

Retornar a una variable para validar si se pudo abrir de forma correcta o no y con eso tomar una decisión a través del comando IF.

Ejemplo:

(101)

Abrir xlsx

Nos permite abrir un archivo XLSX en memoria, debemos indicar la ruta donde se encuentra, y al igual que el comando anterior también podemos indicar un Identificador en el caso que necesitemos abrir más de un archivo, además de la variable donde obtendremos un True si se pudo abrir de forma correcta, o un False en caso contrario.

Buenas prácticas

Retornar a una variable para validar si se pudo abrir de forma correcta o no y con eso tomar una decisión a través del comando IF.

Ejemplo:

Documentación de Rocketbot Studio 96

(102)

Guardar xlsx

Nos permite guardar el archivo XLSX que está en foco indicando la ruta y nombre, si estamos trabajando con más de uno, primero debemos dejar activo el que queremos guardar, con el comandoCambiar de Archivo

(103)

Obtener Hojas

Obtendremos una lista con los nombres de las hojas contenidas en el archivo, debemos indicar una variable donde almacenar la información.

Documentación de Rocketbot Studio 98

(104)

Cambiar de Hoja

Por defecto se trabaja con la primera hoja del archivo, si necesitamos trabajar con otra, debemos cambiarnos de Hoja indicando su nombre.

(105)

Cambiar de Archivo

Podemos cambiar de archivo dejando activo otro que haya sido abierto por Rocketbot, para eso debemos indicar el ID agregado mediante el comandoNuevo xlsxoAbrir xlsx

Documentación de Rocketbot Studio 100

(106)

Contar Filas

Este comando nos permite obtener la cantidad total de filas con información del archivo xlsx. Por defecto contará las filas de la primera hoja, si necesitamos trabajar con otra, primero debemos cambiarnos con el comandoCambiar de Hoja.

Buenas prácticas

Siempre luego de Abrir un archivo xlsx, debemos contar la cantidad de filas que tiene, ya que en el caso de que la cantidad sea variable y en otra ocasión el archivo tenga más o menos filas, es decir, en otra ocasión el archivo tenga más o menos filas tendríamos que estar modificando el comandoObtener celdade forma manual, lo cual no es óptimo, por lo tanto siempre se debe trabajar con una variable que contenga la cantidad de filas.

(107)

Contar Columnas

Este comando nos permite obtener la cantidad total de columnas con información del archivo xlsx. Por defecto contará las columnas de la primera hoja, si necesitamos trabajar con otra, primero debemos cambiarnos con el comandoCambiar de Hoja.

Documentación de Rocketbot Studio 102

(108)

Obtener celda

Este comando nos permite obtener una celda o un rango de celdas y almacenar la información en una variable, al obtener un rango nos devolverá una lista o una lista de listas.

Buenas prácticas

Cuando trabajamos con un rango (ej: A1:F3) no debemos pasar un número fijo al final de este, sino, debemos utilizar el comandoContar Filasy asignar el valor a una variable, esta variable es la que se debe pasar al final del rango, ej: A1:F{filas}, esto en el caso de que la cantidad de datos en el Excel sea variable, para no estar modificando el comando cada vez que la cantidad de filas cambia, se debe utilizar esta buena práctica.

(109)

Escribir Celda

Este comando nos permite escribir un texto en una celda específica o un rango si definimos una matriz en el input Texto.

Ejemplo:

Para escribir en un rango debemos en Celda indicar la celda de inicio y en Texto lo siguiente: [["Titulo1", "Titulo2"], ["valor1", "valor2"]]

Quedará así:

Documentación de Rocketbot Studio 104

(110)

Virtualización

Este menú es nuestra última opción para realizar una automatización, el orden de prioridad sería:

1. Comandos nativos y/o módulos para Web, Office, Email, Base de datos, SAP, FTP, Archivos, etc.

2. Si necesitamos controlar una aplicación de escritorio, debemos primero intentar con los grabadores, Desktop Recorder o Java Recorder, si ninguno de los dos nos sirve, entonces la última opción será Virtualización ya que se deben considerar ciertas cosas como por ejemplo:

a. La resolución del PC afectará al bot, por ejemplo, si se desarrolla un bot en X computador y luego se pasa al computador del cliente o donde se

ejecutará finalmente, lo más probable es que no funcione correctamente, ya que se tienen resoluciones y componentes distintos.

b. Las imágenes siempre deben estar enfrente para que el bot las reconozca, esto quiere decir que una persona no puede utilizar el computador al mismo tiempo que el robot, por lo tanto no se podrán realizar ejecuciones en paralelo.

c. La pantalla no se puede bloquear, por lo que eso se debe desactivar o realizar ajustes para que no suceda.

(111)

Click en Imagen

Realiza un click a la imagen que indicamos mediante una captura de pantalla.

Buscará la imagen en toda la pantalla, por lo que si cambia de posición la encontrará igualmente.

Al presionar “Captura de Pantalla”, aparecerá una ventana con dos opciones:

1. Tomar captura: Saca la captura inmediatamente.

2. Captura en 5 seg.: Espera 5 segundos y luego saca la captura, esto nos permite movernos o dejar la aplicación o elemento en foco.

Documentación de Rocketbot Studio 106

(112)

Al sacar la captura, nos mostrará la imagen y una selección, la cual podemos ampliar o achicar para seleccionar el elemento deseado.

Debemos acotar la selección sólo al elemento donde queremos clickear, en este ejemplo debemos realizar un click en el input de Username, pero vemos que todos los inputs son iguales, por lo tanto debemos escoger una referencia distinta al foco, la referencia en este caso será el label Username, y el foco (donde hace el click finalmente) será el input.

Primero seleccionamos el label Username y luego clickeamos en Sel. referencia, de esta forma veremos la imagen debajo del texto Imagen de referencia

(113)

Ahora seleccionamos el input donde queremos que realice el click y clickeamos Sel. foco, de esta forma veremos la imagen debajo del texto Hacer click

Finalmente debemos elegir las opciones de la derecha, las cuales son:

Posición: Posición donde se dará click en la imagen (Center, Top, Bottom, Right, etc.)

Exactitud: Generalmente utilizamos 0.8 o 0.7 que corresponde al 80% o 70% de exactitud en cuanto a la imagen.

Click en botón: indicamos qué tipo de click realizaremos (Izquierdo, doble izquierdo, derecho, medio, etc.)

Escala de grises: Podemos elegir si queremos que pase la imagen a gris o color y luego busque, por defecto es en Escala de grises y es lo recomendable.

Tiempo de busqueda: Podemos agregar un tiempo de búsqueda variable, esperar N segundos hasta que aparezca la imagen y luego le de click.

Documentación de Rocketbot Studio 108

(114)

Buscar por Imagen

Busca una imagen de referencia en la pantalla y almacena el resultado en una variable retornando True si la encontró dentro del tiempo definido o False en caso contrario.

Buenas prácticas

Al igual que el comandoEsperar por Objetopara la parte web, en Virtualización debemos utilizar este comando para asegurarnos de que el elemento con el cual

queremos trabajar, existe, y luego tomar una decisión con un IF, si nos retorna True, osea que sí lo encontró, entonces dentro de ese bloque realizamos nuestro flujo, si nos retorna False, osea que no lo encontró entonces debemos decidir qué hacer.

(115)

OCR a imagen

Busca una imagen y transcribe el texto guardándolo en una variable.

Considerar que el OCR no es 100% fiable, por lo que podría traer un texto erróneo, por ejemplo confundir un 0 con una o.

Documentación de Rocketbot Studio 110

(116)

Esperar por imagen

Espera una imagen de referencia en la pantalla y almacena en una variable si está visible o no.

Realiza la misma función que el comandoBuscar por imagen

Buenas prácticas

Al igual que el comandoEsperar por Objetopara la parte web, en Virtualización debemos utilizar este comando para asegurarnos de que el elemento con el cual

queremos trabajar, existe, y luego tomar una decisión con un IF, si nos retorna True, osea que sí lo encontró, entonces dentro de ese bloque realizamos nuestro flujo, si nos retorna False, osea que no lo encontró entonces debemos decidir qué hacer.

(117)

Tips

Windows

Estos son algunos casos donde los comandos de imagen no funcionen correctamente, por lo tanto se debe revisar resolución o ejecutar Rocketbot como administrador.

1. Si no realiza los click en las imágenes a. Instalar lo siguiente:

.NET Framework:Download .NET Framework | Free official downloads Visual C++:Descargas más recientes compatibles de Visual C++

b. Revisar resolución:

Si la configuración de pantalla está aumentada, dejarla al 100% y probar.

Documentación de Rocketbot Studio 112

(118)

Importante: Si se realizan cambios de escala, puede ser necesario cerrar sesión y volver a abrir para que los cambios se guarden.

(119)

2. Si realiza click en ciertas imágenes pero no en todas.

Por ejemplo realiza click en elementos del escritorio o barra de tareas pero no en una aplicación de escritorio interna, además al intentar abrir la aplicación con Rocketbot aparece lo siguiente:

Ejecutar Rocketbot como administrador y probar.

3. Si realiza click en otra parte

Especificar alguna referencia, por ejemplo si tenemos dos elementos iguales, debemos marcar como referencia algo que no se repita y como foco el lugar donde realizar el click.

Por ejemplo acá seleccionamos como referencia el label Username el cual no se repite, y el foco es el input, lo que hará será calcular las coordenadas desde la imagen de

referencia hasta la indicada en foco y hará click a lo que se encuentre en esa posición.

Documentación de Rocketbot Studio 114

(120)

Si sigue realizando el click en otra parte, y se está trabajando desde un escritorio remoto, debemos cambiar la resolución antes de ingresar al servidor.

Por ejemplo, el foco (donde hacer el click) es el ícono de Rocketbot, pero el click lo realiza

en el punto rojo:

Configuración:

(121)

4. Si sigue sin encontrar las imágenes y es un Windows Enterprise (win 7 o win 10), revisar si está la siguiente .dll sino, agregarla:

DLL:api-ms-win-downlevel-shlwapi-l1-1-0.dll

5. Virtualización en Windows server 2012 mediante rdp

En caso que las funciones de virtualización para “click en imagen” o “esperar por imagen”

no funcionara correctamente podemos revisar lo siguiente:

Que no esté habilitada la opción de cambiar el nivel de escala:

Documentación de Rocketbot Studio 116

(122)

Adicional a esto verificar que esté instalada las características dentro de “Interfaz de usuario e Infraestructura” en especial Experiencia de escritorio:

(123)

macOS

Permiso denegado al hacer OCR

Solución:

1. Abrir el terminal e ir a la ruta indicada en el error, ej:

cd /Users/usuario/Desktop/Rocketbot/drivers/mac/tesseract 2. Escribir el comando ls-l para visualizar los permisos.

3. Veremos que en este caso no tiene permisos de ejecución:

4. Le damos los permisos con uno de los siguiente comandos:

- ejecución para todos los usuarios: chmod 777 tesseract - ejecución sólo para el owner: chmod 744 tesseract

Documentación de Rocketbot Studio 118

(124)

- Volvemos a ejecutar un ls -l para revisar los cambios:

- Ahora ejecutamos nuevamente el comando de OCR

(125)

MySQL

Configurar conexión Mysql

Para conectarnos con MySQL, debemos indicar la URL del servidor, puerto, nombre de la BD, usuario y contraseña, además podemos retornar el resultado a una variable donde obtendremos un True si la conexión fue exitosa, o un False, en caso contrario y podemos utilizar un ID en caso de que nos conectemos a varias Bases de datos MySQL.

Buenas prácticas

Siempre agregar una variable para retornar el status de conexión y con eso validar a través del comando IF para tomar una decisión.

Documentación de Rocketbot Studio 120

(126)

Consulta MySQL

Realiza una consulta MySQL (Select, insert, delete, update), el resultado lo retornamos en una variable para posteriormente trabajar con la información.

Buenas prácticas

En el ambiente de Desarrollo de Rocketbot las consultas se deben realizar con límites y no traer todos los registros, ya que si son demasiados, Rocketbot puede detenerse por consumo de memoria, esto para realizar pruebas, ya en el ambiente de producción igualmente es recomendable seccionar la cantidad de registros consultados.

(127)

Email

SMTP - IMAP

Configurar servidor

Configura un servidor SMTP e IMAP con SSL para enviar y recibir correo. Al abrir el comando, por defecto vienen los servidores y puertos de gmail, debemos añadir el correo y su contraseña.

Buenas prácticas Variables:

Es buena práctica, utilizar variables tanto en el nombre de usuario como en el caso de la contraseña y no escribirlos directamente en el comando. También debemos recordar siempre borrar las credenciales si por alguna razón tuvieras que compartir el robot.

Conexión:

Siempre se debe validar la correcta conexión de la cuenta de correo, en el caso de los módulos, éstos permiten validar la conexión retornando el resultado a una variable, por lo tanto esto se debe validar con un IF.

En el caso de este comando, no tiene opción para retornar a una variable y revisar si las credenciales conectaron de forma correcta o no, pero en este caso se puede utilizar el comandoÚltimo Estadoy validar esa respuesta.

Documentación de Rocketbot Studio 122

(128)

Una vez que ya no utilizaremos nada respecto a correos, debemos cerrar la conexión con el comando “Cerrar Conexión” del módulo que estemos utilizando.

Módulos:

Se recomienda utilizar los módulos específicos para los distintos tipos de servidores de correo, pero si se requiere utilizar uno corporativo o que por el momento no tenga su respectivo módulo, es óptimo utilizar este comando para configurar y complementarlo con el módulo Email Advanced en vez de utilizar los comandos nativos que son más limitados.

(129)

Enviar Email SMTP

Con este comando ingresamos la dirección de correo a quién queremos enviar el mail (sólo acepta un destinatario), el asunto y el mensaje, además podemos adjuntar un archivo indicando la ruta.

Para enviar un mail, debemos configurar previamente el servidor SMTP a utilizar, con el comandoConfigurar Servidor.

Documentación de Rocketbot Studio 124

(130)

Listar todos los email IMAP

Este comando nos permite obtener una lista de todos los email que coincidan con el filtro2indicado, debemos retornar el resultado a una variable para trabajar con la información.

Buenas prácticas

Una vez que obtenemos el resultado de listar email es necesario decodificar los datos.

(131)

La decodificación se realiza con el comando Asignar Variable y la función de Python decode().

Ejemplo:

Quedará de la siguiente forma:

Si queremos realizar el decode para toda la lista obtenida, debemos recorrerla con un For.

Documentación de Rocketbot Studio 126

(132)

Listar email nuevos IMAP

Este comando nos permite obtener una lista de todos los email que coincidan con el filtro3indicado, la diferencia con el comando anterior es que este nos traerá los id’s sólo de los correos que no hayan sido leídos aún. Debemos retornar el resultado a una variable para trabajar con la información.

Al igual que el comando anterior, también debemos decodificar los id’s entregados.

(133)

Leer email por ID IMAP

Este comando nos permite leer la información del correo, debemos indicar el ID del email obtenido del comandoListar todos los email IMAPoListar email nuevos IMAP, al asignar a una variable obtendremos información como por ejemplo el mensaje, asunto, quién lo envió y si tiene archivos adjuntos o no, además podemos indicar una ruta y en caso de que traiga adjuntos, éstos serán descargados en la carpeta indicada.

Documentación de Rocketbot Studio 128

(134)

Conexión HTTP

Conectar url GET

Este comando nos permite realizar una solicitud de tipo GET y asignar los datos a una variable.

Ejemplo:

(135)

Conectar URL avanzado

Con este comando podemos ejecutar solicitudes HTTP del tipo Get, Post, Put y Delete. A diferencia de la conexión URL GET, en este comando podemos enviar múltiples variables.

El resultado de la consulta quedará guardado en Asignar resultado a variable. Podemos enviar consultas con cabeceras, donde ingresamos por ejemplo una Key para conectar a una Api, seleccionar el formato del dato a enviar, ya sea como Formulario, Json o Texto plano. En la sección Ruta de Archivo ingresamos el Path de un archivo que podría ir adjunto, por ejemplo, en una solicitud del tipo Post. En este comando los datos obligatorios son URL de Servidor y Método de solicitud

Ejemplo:

Realizaremos un Post, pasando un XML para convertir de Fahrenheit a Celsius.

En este caso debemos además de agregar la URL y el método de solicitud, indicar en cabeceras que es un tipo de texto XML.

*Si queremos utilizar una variable en las cabeceras, debemos “escapar” las comillas dobles para que quede de esta forma:

Se puede realizar desde Asignar Variable con la siguiente instrucción:

"""{header}""".replace('"', '\\"')

Documentación de Rocketbot Studio 130

(136)

En la pestaña Contenido Plano, realizaremos la llamada

Obteniendo lo siguiente:

(137)

Integración con Aplicaciones

Excel

Si trabajamos con este menú si es necesario tener instalado Microsoft Excel, ya que trabaja con la aplicación, abre o crea un archivo en primer plano y veremos que este se abre.

Nuevo Libro

Nos permite crear un nuevo archivo Excel, podemos indicar un Identificador (puede ser un número, letra o palabra) en el caso de que necesitemos crear y/o trabaja con más de un archivo Excel abierto por Rocketbot, luego si necesitamos ir moviéndonos entre uno u otro, lo tendremos que realizar a través de su ID, también podemos indicar una variable, donde obtendremos un True si se puedo crear un nuevo Excel o False en caso contrario.

Documentación de Rocketbot Studio 132

(138)

Buenas prácticas

Retornar a una variable para validar si se pudo abrir de forma correcta o no y con eso tomar una decisión a través del comando IF.

Ejemplo:

Referencias

Documento similar

If certification of devices under the MDR has not been finalised before expiry of the Directive’s certificate, and where the device does not present an unacceptable risk to health

In addition to the requirements set out in Chapter VII MDR, also other MDR requirements should apply to ‘legacy devices’, provided that those requirements

The notified body that issued the AIMDD or MDD certificate may confirm in writing (after having reviewed manufacturer’s description of the (proposed) change) that the

Con la segunda estación: “ME VISTO DE CIUDAD” se recotextualiza parte esa transición provincia - ciudad y su impacto generado a partir de un contacto directo con un

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

The principal characters from the novel, particularly Will, his sister Bobbie and Charlie 2 Moons in Idaho, and the friends that Will makes in New York, notably, Rose, True

The best secure email service provider makes it simple and easy to improve the security and privacy of your emails.. When it comes to popularity and ease of use, major email

Dulce María Álvarez López, email: dulcemaria.alvarez.ce32@dgeti.sems.gob.mxMARÍA SUB I REALIZA LOS ANALISIS FISICOS, QUIMICOS Y. MICROBIOLOGICOS PERTINETES