Al ingresar a algunas páginas web se nos pide Usuario y Contraseña con el siguiente Popup de login
Este popup de login en el navegador bloquea el script de automatización
Esto hace que el script del robot se bloquee y no continue hasta que se ingresen los datos.
Se puede resolver con un script async que envíe comandos de teclado “sendkey” o un comando de virtualización, pero esto se aleja mucho de ser lo óptimo.
Para sortear este problema se debe ingresar los datos en la url de entrada separando los datos con “:” y la url con “@”.
http://username:password@xyz.com
Esto es lo mismo que entrar a http://xyz.com e ingresar los datos.
El login se hará de modo automático y el script no se detendrá.
Se debe tener en cuenta que se pueden enviar variables en la url a abrir. http://{my_user}:{my_pass}@xyz.com Esto hace que ingresar usuario y contraseña sea de forma dinámica.
Si su contraseña o usuario contiene el caracter @ remplace por %40
The IEDriverServer exectuable must be downloaded and placed in your PATH.
On IE 7 or higher on Windows Vista or Windows 7, you must set the Protected Mode settings for each zone to be the same value. The value can be on or off, as long as it is the same for every zone. To set the Protected Mode settings, choose “Internet Options…” from the Tools menu, and click on the Security tab. For each zone, there will be a check box at the bottom of the tab labeled “Enable Protected Mode”.
Additionally, “Enhanced Protected Mode” must be disabled for IE 10 and higher. This option is found in the Advanced tab of the Internet Options dialog.
The browser zoom level must be set to 100% so that the native mouse events can be set to the correct coordinates.
For Windows 10, you also need to set “Change the size of text, apps, and other items” to 100% in display settings.
For IE 11 only, you will need to set a registry entry on the target computer so that the driver can maintain a connection to the instance of Internet Explorer it creates. For 32-bit Windows installations, the key you must examine in the registry editor is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. For 64-bit Windows installations, the key is HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. Please note that the FEATURE_BFCACHEsubkey may or may not be present, and should be created if it is not present. Important:Inside this key, create a DWORD value named iexplore.exe with the value of 0.
Others Errors:
It throws an error like this when trying to open the browser with IE
To work with IE we need to make the following configurations:
Go to the Rocketbot folder and copy the 32bit driver to the 64bit driver folder.
drivers\win\ie\x86\IEDriverServer.exe to drivers\win\ie\x64\IEDriverServer.exe
After that, we must go to the IE browser, Settings->Internet Options->Security
All options must be set to the lowest level that allows and disable “Protected Mode“.
Como obtener un elemento por su xPath en Javascript
Para obtener un elemento por su xpath utilizando Javascript puro podemos insertar esta función con el comando de ejecutar JS en el navegador y agregar:
document.getElementByXPath = function(sValue) {
var a = this.evaluate(sValue, this, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
if (a.snapshotLength > 0) {
return a.snapshotItem(0);
}
};
Esto nos devolverá el puntero de un objeto y lo podremos manipular de manera muy simple.
Una ves encontrado podemos usar el parámetro return innerHTML para obtener su contenido y almacenarlo en una variable de Rocketbot.
Enviando eventos de teclado en Windows
El siguiente texto indica como enviar eventos de teclado en windows.
Remarks
Each key is represented by one or more characters. To specify a single keyboard character, use the character itself. For example, to represent the letter A, use "A" for string. To represent more than one character, append each additional character to the one preceding it. To represent the letters A, B, and C, use "ABC" for string. The plus sign (+), caret (^), percent sign (%), tilde (~), and parentheses ( ) have special meanings to SendKeys. To specify one of these characters, enclose it within braces ( {}). For example, to specify the plus sign, use{+}. Brackets ([ ]) have no special meaning to SendKeys, but you must enclose them in braces. In other applications, brackets do have a special meaning that may be significant whendynamic data exchange (DDE) occurs. To specify brace characters, use {{} and {}}. To specify characters that aren’t displayed when you press a key, such as ENTER or TAB, and keys that represent actions rather than characters, use the codes shown below:
Key
Code
BACKSPACE
{BACKSPACE}, {BS}, or{BKSP}
BREAK
{BREAK}
CAPS LOCK
{CAPSLOCK}
DEL or DELETE
{DELETE} or{DEL}
DOWN ARROW
{DOWN}
END
{END}
ENTER
{ENTER} or ~
ESC
{ESC}
HELP
{HELP}
HOME
{HOME}
INS or INSERT
{INSERT} or {INS}
LEFT ARROW
{LEFT}
NUM LOCK
{NUMLOCK}
PAGE DOWN
{PGDN}
PAGE UP
{PGUP}
PRINT SCREEN
{PRTSC}
RIGHT ARROW
{RIGHT}
SCROLL LOCK
{SCROLLLOCK}
TAB
{TAB}
UP ARROW
{UP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
F13
{F13}
F14
{F14}
F15
{F15}
F16
{F16}
To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the key code with one or more of the following codes:
Key
Code
SHIFT
+
CTRL
^
ALT
%
To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses. For example, to specify to hold down SHIFT while E and C are pressed, use ” +(EC)“. To specify repeating keys, use the form {key number}. You must put a space between key and number. For example,{LEFT 42} means press the LEFT ARROW key 42 times; {h 10} means press H 10 times.
Note You can’t use SendKeys to send keystrokes to an application that is not designed to run in Microsoft Windows or Macintosh. Sendkeys also can’t send the PRINT SCREEN key {PRTSC} to any application.
RPA en Servidores Virtuales
Dependiendo del proceso que quieras automatizar y de como ejecutarás los robots, necesitarás que tu servidor cumpla con ciertas carácteristicas para que el robot funcione sin problemas
Podemos clasificar los procesos en dos categorías, los que necesitan interfaz gráfica (robots que sacan captura de la pantalla o utilizan el teclado y mouse) y los que no la necesitan (robots que emulan una terminal, automatizan archivos xlsx, utilizan una API, etc.). Es importante tener esto en cuenta a la hora de desarrollar un robot, ya que la mayoría de los servidores, al desconectarte, pierden la interfaz gráfica y esto provoca que los robot fallen.
El bloqueo de pantalla y el minimizar el escritorio remoto también pueden afectar el funcionamiento de tu robot. El sistema operativo nunca debe bloquear la pantalla en una máquina que ejecuta un proceso automatizado (RPA), ya que al igual que en el caso anterior, el robot no podrá sacar captura de pantalla o mover el mouse en los lugares indicados. Y en el caso de minimizar el rdp, windows puede pausar algunos procesos o quitar interfaz, por lo cual debes configurar tu máquina para que esto no ocurra.
En Rocketbot desarrollamos una aplicación que te permite configurar tu servidor de forma sencilla, creando los archivos .bat necesarios para ejecutar tu robot y/o modificando los registros para prevenir problemas con la pantalla. Esta aplicación la puedes descargar aquí: RDP-Rocketbot. Recuerda descargarlo en el servidor y/o en tu máquina según corresponda.
Mantener interfaz al desconectarse del servidor
Para evitar estos problemas, los servidores windows cuentan con un comando llamado tscon.exe que permite tomar la sesión que tienes abierta en el servidor y moverla a la consola, de esta manera tu robot tendrá una interfaz donde trabajar luego de desconectarte del servidor.
En las pestañas Desconectarme y ejecutar una tarea o Desconectarme y ejecutar ROC de la aplicación RDP-Rocketbot puedes crear un archivo bat con el comando tscon. Este archivo debes ejecutarlo como administrador cada vez que quieras desconectarte del servidor (o ejecutar tu robot, según la opción elegida) y te desconectará del servidor y mantendrá la interfaz gráfica.
Video explicativo de como configurar el servidor para ejecuciones desatendidas
Cuidado! Al no abrir el escritorio remoto desde una pantalla física, la resolución puede cambiar y ser menor. Revisa la sección tres para ver como trabajar con esto.
El bat puedes editarlo y revisar que es lo que contiene, pero resumimos lo importante acá. El bat tiene un script de powershell que obtiene el id de la sesión que estas usando al entrar al rdp y la utiliza en el comando tscon para que este la abra en la sesión de la consola.
Mantener la interfaz al minimizar el escritorio remoto
Para poder minimizar el escritorio remoto y no afectar el funcionamiento del robot, debes modificar algunos registros en la máquina que abre el rdp, estos registros son:
Para el usuario actual:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client (32 bit)
HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Terminal Server Client (64 bit)
Para todos los usuarios:
HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client (32 bit)
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Terminal Server Client (64 bit)
En la pestaña Conectarme a Escritorio Remoto de la aplicación RDP-Rocketbot, puedes cambiar los registros con un solo botón. Solo recuerda ejecutar la aplicación como administrador.
Cambio de resolución al desconectarte del servidor
Si ya solucionaste los problemas anteriores, pero tu robot falla y/o aún no reconoce las imagenes, es probable que tengas un problema con la resolución. Ya mencionamos en la primera parte de este post que al desconectarte el servidor pierde la interfaz gráfica y es necesario utilizar tscon. Esto permite que el robot pueda sacar capturas, pero como el servidor ya no cuenta con tu pantalla para ajustar una resolución, toma sus propias resoluciones por defecto, que en la mayoría de los casos es de 1024×768.
Si tu robot trabaja con virtualización, este cambio de resolución puede afectarlo, por lo cual es importante que, antes de comenzar a desarrollar tu robot, revises las resoluciones que permite tu servidor al desconectarte.
En la pestaña Ver las resoluciones de pantalla de la aplicación RDP-Rocektbot, puedes ver las resoluciones que permite el servidor en la tabla Resolucoones de pantalla desde la consola de TSCON.
Esas resoluciones son las resoluciones que puedes utilizar, pero no quiere decir que puedes comenzar a construir el robot. Debes revisar la resolución que tiene el servidor al desconectarte y si es posible cambia a la resolución que necesitas. Para cambiar la resolución de pantalla, puedes utilizar el módulo Windows y también puedes utilizar el comando Sacar captura de pantalla de la sección Desktop para válidar si la resolución es la correcta o no.
Ésto lo puedes realizar con RDP-Helper, acá encontrarás los pasos necesarios 👉 Pasos Resolución
Si al salir de un escritorio remoto no es posible modificar la resolución de forma manual y/o usando el módulo de Rocketbot, puedes modificar realizar la siguiente modificación:
Buscar en el regedit todos los registros que se llamen DefaultSettings_XResolutiony DefaultSettings_YResolution y cambiar la resolución a la que necesitas
Prevenir el bloqueo de pantalla
Para evitar que el servidor bloquee la pantalla debes, en primer lugar, consultar con el equipo de TI si es posible modificar las configuraciones necesarias para que esto no ocurra, ya que dependiendo de las politicas de seguridad de la empresa, podría no ser posible modificar esta configuración.
En la sección Configuraciones de la aplicación RDP-Rocketbot, puedes modificar los registros necesarios para deshabilitar el bloqueo de pantalla. El registro que se modificará es HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
For Windows 7/Windows 10/Windows Server 2012 and above:
Press Windows+R and type gpedit.msc
Navigate the tree view on the left to Computer Configuration/Administrative Templates/Windows Components/Remote Desktop Services/Remote Desktop Session Host/Session Time Limits
Adjust the four settings as desired (I believe you want to adjust Set time limit for disconnected sessions and Terminate session when time limits are reached)
Resolver Captcha con módulos externos
Captcha , resolución en 3 comandos.
En esta ocasión vamos a resolver un Captcha usando una librería externa y una página de pago.
La página en la que vamos a resolver el captcha en modo ejemplo es Revisión Técnica Vehicular de Chile en http://www.prt.cl/Paginas/RevisionTecnica.aspx.
A continuación les dejo el video como hicimos esto.
Abrir una URL
WEB \ Abrir URL
Abre una página en el navegador que este previamente abierto con el comando “Abrir navegador”. Si ya tiene una pestaña abierta se redireccionará. La URL debe comenzar con http:// o https://
Datos de entrada
Descripción
Ejemplo
URL
URL de la página que deseas abrir en el navegador ya abierto. Admite variables. La URL debe empezar con http:// o https://
https://www.google.com
Imagen de ejemplo
Video de Curso RPA comando Abrir una URL en español
Abrir navegador
WEB \ Abrir Navegador
Con este comando podrás ejecutar el navegador que ocupes, puedes elegir entre Google Chrome, Firefox, IE o Safari. Por defecto el navegador que elijas se abre en la página de Google, pero tienes la opción de especificar la URL con la que quieres que se abra.
Datos de entrada
Descripción
Ejemplo
Selecciona el navegador
Elige el navegador que deseas abrir
Safari
URL del servidor
Admite variables, debe comenzar con http o https
https://www.google.com
ID
ID unico para recordar la sesión del navegador que abrirá
s1
Perfil
Seleccione una ruta de archivo para almacenar el perfil del navegador
Los navegadores son controlados por webdrivers, estos se encuentran dentro de la carpeta de Rocketbot/drivers/sistema operativo/ etc. Los mismos deben ser actualizados si se actualiza la versión del navegador y el robot comienza a presentar problemas.
💡Nota: Puedes encontrar los drivers en: https://www.seleniumhq.org/download/
Video de Curso RPA comando Abrir Navegador en español
Abrir Rocketbot Studio
Luego de descargar Rocketbot Studio desde aquí puedes seguir este tutorial para iniciar el sistema.
Recuerden que luego de descomprimir el archivo descargado deben:
MAC OS X: desde el terminal moverse a la carpeta del ejecutable con “CD rocketbot_mac” y luego escribir “./rocketbot_mac”
Windows: Doble click en el icono de rocketbot.exe
Entrando a PJUD – Poder Judicial de Chile
Vamos a mostrar como entrar al PJUD – Poder judicial de Chile y buscar información de una persona en particular.
Primero veamos el resultado y luego vamos por el paso a paso.