CÓMO HABILITAR LAS APLICACIONES POCO SEGURAS EN GMAIL

Para poder enviar y recibir correos en Gmail desde Rocketbot, es necesario habilitar el acceso a aplicaciones poco seguras, para esto, se realizan los siguientes pasos:

1.- Dar click en la imagen de tu cuenta de Gmail.

2.- Luego dar click en “Cuenta de Google

3.- Click en “Seguridad

4.- Ir al apartado  “Acceso de aplicaciones poco seguras” y dar click en “Activar acceso

5.- Finalmente activar “Permitir el acceso de aplicaciones poco seguras




TIPS COMANDOS ROCKETBOT

FECHAS

MODIFICAR FORMATO DE UNA FECHA CON PYTHON

Variable: fecha: 2019-04-01

Comando "Asignar Variable": 

datetime.strptime("{fecha}", '%Y-%m-%d').strftime('%d.%m.%Y')

Resultado: 01.04.2019


MODIFICAR FORMATO DE UNA FECHA CON JAVASCRIPT

Variable: fecha

Comando "Ejecuta JS":

fecha = "06/12/2018"
fecha = fecha.split("/").reverse().join("");
return fecha;


FECHA DE HOY CON FORMATO

Comando “Asignar Variable”

datetime.now().strftime("%d/%m/%Y %H:%M:%S")

Obtener el día actual (número)

datetime.today().weekday()

Lunes = 0
Martes = 1
Miércoles = 2
Jueves = 3
Viernes = 4
Sábado = 5
Domingo =6

 


RESTAR DOS HORAS

 

Comando "Asignar Variable":

 

datetime.strptime("{hora1}", "%H:%M:%S") - datetime.strptime("{hora2}", "%H:%M:%S")

 

 

 


ÚLTIMO DÍA DEL MES CON SCRIPT PYTHON

Variables:

Archivo last_day.py

Con GetVar estamos trayendo la información de las variables "mes" y "anio" que tenemos declaradas en Rocketbot.

Con SetVar estamos seteando a la variable "resultado" que tenemos declarada en Rocketbot, el valos que nos entrega calendar.monthrange.

 

Resultado:


DÍA LABORAL ANTERIOR

Comando "Asignar Variable":

datetime.today() - timedelta(days={days_delta}[datetime.today().weekday()])

variable:
time_delta =
[2,3,1,1,1,1,1]


OMITIR ALERT DEL NAVEGADOR POR JS

Comando "Ejecuta JS":

alert = function(a){console.log(a)}

opción 2:
alert = console.log


SEPARAR LETRAS Y NÚMEROS DE VARIABLE

Variables de ejemplo

var = 1234567MANDATO
var_num -> donde se guardarán los números
var_letras -> donde se guardaran las letras

Validar si es dígito:

Validar si es letra:

Resultado:

 


DEJAR SOLO EL NÚMERO

Variables:

Comando "Asignar variable":

"".join([ b for b in "{valor}"  if b.isdigit() ])

 

Resultado:

 


LEER UN ARCHIVO .TXT Y ASIGNARLO A UNA VARIABLE

Comando "Asignar Variable":

open("C:/Users/User/Desktop/archivo.txt").read()

Resultado:


ELIMINAR ACENTOS

Tenemos una variable con acento (var), en este caso pasaremos el resultado a var2 para ver el cambio, pero se podría pasar directamente a la misma variable.

Variables:

Comando "Asignar Variable":

unicodedata.normalize('NFKD', "{var}").encode("ascii", "ignore").decode()

Resultado:


OMITIR VENTANA DE CONFIRMACIÓN DEL NAVEGADOR

Comando "Ejecuta JS":

window.confirm = function () { return true }

O con el módulo: AcceptAlert


MODIFICAR DATOS DE UN ARRAY

Variable con Array:

 

Modificar posición 1 ("Mantenedores") por la palabra "nuevo_valor"

Comando "Asignar Variable":

Se indica que primero tome desde la posición 0 a la 1 (se excluye el valor de la posición 1, 'Mantenedores'), luego que agregue "nuevo_valor" y que continúe desde la posición 2 en adelante y se asigna a la variable "dato" .

Resultado:


CREAR ARRAY Y AÑADIR VARIABLES

Crear variable con []

Comando "Asignar Variable":

{array}.__add__(["{dato1}","{dato2}"])

 

Resultado:

Otra forma:{array} + ["{dato1}","{dato2}"]


ELIMINAR DATOS DE ARRAY 

 

Comando Asignar Variable

*Eliminar datos de un array indicando la posición:

Resultado:

 

*Eliminar datos de un array indicando el valor:

 

 

Resultado:

 

 


ABRIR “EJECUTAR” DE WINDOWS

 

Comando "Enviar Tecla":

^{ESC} Ejecutar {ENTER}

 

Resultado:

 

O con el módulo: Enviar Teclas Predefinidas


SETEAR UN ATRIBUTO A UN ELEMENTO

 

Comando "Ejecuta JS":

document.getElementsByClassName("r4nke ")[10].setAttribute("tag","prueba")


DAR CLICK A UN ELEMENTO POR SU QUERYSELECTOR

 

Comando "Ejecuta JS":

document.querySelectorAll('[data-date="20190529"]')[0].click()

ó

document.querySelector('[data-date="20190529"]').click()


MARCAR UN CHECKBOX POR SU ÍNDICE

 

Comando "Ejecuta JS":

$("input[type=checkbox]").eq(0).prop("checked",true);

MARCARLOS TODOS:

$("input[type=checkbox]").prop("checked",true);

DESMARCARLOS TODOS:

$("input[type=checkbox]").prop("checked",false);

DAR CLICK A TODOS (MARCA Y DESMARCA):

$(":checkbox").click();

DAR CLICK AL ÚLTIMO:

$(":checkbox").last().click();


SABER SI UN CHECKBOX ESTÁ MARCADO O NO

Inspeccionar el checkbox:

Obtener el selector:

Click derecho -> copiar -> copiar selector

 

Comando "Ejecuta JS":

return document.querySelector('SELECTOR_COPIADO').cheched

Ejemplo:

Retornar el resultado a una variable, en este caso “checkbox”, al ejecutarlo obtendremos un True o False, dependiendo de si está marcado o no

Para decodificar (sacar la b')

Resultado:

 


 

PARA MARCAR UN CHECK DEPENDIENDO DEL VALOR

 

Ejemplo:

Necesitamos marcar el checkbox si la fecha es igual a "2019-07-02"

Comando "Ejecuta JS":

$('td:contains(2019-07-02)').last().parent().find('input').prop('checked',true).change()

 

Resultado:


CLICK EN UN BOTÓN SUBMIT

Comando "Ejecuta JS":

$(":submit").click()


GUARDAR EN UNA VARIABLE EL STATUS (RESPUESTA) DEL COMANDO EJECUTADO

 

Comando "Asignar Variable":

%rocketbot_last_status%

Ejemplo:

Abrir navegador y obtener la respuesta en la variable {res}

Resultado:


CREAR UNA CARPETA DESDE ROCKET

 

Comando "Asignar Variable":

os.mkdir("C:/el/path")


COPIAR VALOR DE UNA VARIABLE AL PORTAPAPELES

 

Comando “Asignar Variable”

Windows:

os.system("echo {variable} | clip")

MAC:

os.system("echo {variable} | pbcopy")

o con el módulo para Windows: Portapapeles


OBTENER CURRENT WORKING DIRECTORY

 

Comando “Asignar Variable”:

os.getcwd()


OBTENER NOMBRE DE ARCHIVO DE UN PATH

 

Variables:

Comando "Asignar Variable":

os.path.basename(r"{path}")

Resultado:


COMANDO DETENER

 

El comando Detener, si está en un hijo, detendrá ese Robot y continuará con los pasos del Padre.

Si está dentro de un if detiene el if y todo el robot.


CUANDO HAY EVENTOS CHANGE Y NECESITAMOS ACTIVAR EL CAMBIO DEL VALOR

Ejemplo:

*Por ejemplo esta fecha, al cambiar el value con JS lo modificaba pero no “activaba” la búsqueda, para eso, podemos realizar lo siguiente con JQuery y utilizar change():

 

Comando "Ejecuta JS":

$('input[class="form-control ng-pristine ng-untouched ng-valid ng-isolate-scope ng-valid-required ng-valid-date"]').val('{fecha}').change()


REQUEST API

 

Si se realiza un GET en un script Python y arroja este error:

 

('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

 

En el Script se debe agregar el "User-Agent":

 

headers = {

   'User-Agent': 'My User Agent 1.0',

}

data = requests.get(URL_, headers=headers)

data = data.json()


MINIMIZAR TODO PARA MOSTRAR EL ESCRITORIO (WINDOWS)

 

Comando "Enviar Tecla":

{VK_LWIN down}D{VK_LWIN up}

o con el módulo: Enviar Teclas Predefinidas


EN EXCEL AL OBTENER CELDA CON NÚMEROS LOS TRAE COMO FLOAT

Validar si termina en .0 para hacer un "replace"

 

Validamos si la respuesta en {var2} es True, y si es reemplazamos el .0 por nada

 

Secuencia:


VALIDAR CONEXIÓN A INTERNET

 

Comando "Ejecuta JS":

return navigator.onLine

 

Devuelve True o False.


REALIZAR SCROLL

 

Comando "Ejecuta JS"

window.scrollTo(0,500);

*500 px horizontalmente

o con el módulo: WebPro


OBTENER EL TOTAL DE FILAS DE UNA TABLA

 

Comando "Ejecuta JS":

document.getElementsByClassName('tabla_indicadores')[4].getElementsByTagName("tr").length;

*Donde tabla_indicadores es la clase de la tabla de la cual queremos obtener las filas.


SELECCIONAR UNA OPCIÓN DE UN SELECT EN BASE A UNA VARIABLE

 

Comando "Ejecuta JS":

$(‘span:contains({var})’).click()


ENVIAR EMAIL CON ACENTOS DESDE UN ROBOT HIJO

 

Para los tildes y eñes, deberíamos colocar el texto según estas opciones:

á -> á

é -> é

í -> í

ó -> ó

ú -> ú

ñ -> ñ

 

Ejemplo con el módulo del Gmail:

Correo:


ELIMINAR LOS NONE DE UNA LISTA

 

En Script Python:

 

test_list = [1, None, 4, None, None, 5, 8, None] 

# printing original list  

print ("The original list is : " + str(test_list))  

# to remove None values in list 

res = [] 

for val in test_list: 

    if val != None : 

        res.append(val)


Modificar texto para que empiece con letra mayúscula:

Comando: "Asignar Variable"

Resultado:




CREAR TAREA PROGRAMADA (Task Scheduler)

Requisito: Contar con licencia de producción.

Desde el entorno gráfico Windows

1.- Crear un .bat con la ruta donde está instalado Rocketbot, seguido de la instrucción -start= más el nombre del robot a ejecutar, ejemplo:

Archivo robot.bat:

cd C:\ruta\rocketbot\
rocketbot.exe -start=nombre_del_robot

 2.- Abrir Task Manager

3.- Clickear “Create Task” para crear una nueva tarea

4.- En “Name”, colocar el nombre que tendrá la tarea y marcar “Run with highest privileges”.

5.- Vamos a la pestaña “Triggers” y presionamos en “New”.

6.- Esto abrirá la siguiente ventana, donde en “Settings” configuramos cada cuanto queremos que se ejecute la tarea (una vez, diariamente, etc) y en “Start” ponemos la fecha de inicio y la hora en que queremos que se ejecute.

7.- Luego ir a la pestaña “Actions” y dar click en “New

8.-  Esto abrirá la siguiente ventana, donde en “Program/Script”, buscamos el archivo .bat que creamos al inicio y presionamos “OK”

**Esto creará la tarea y aparecerá en el listado del Task Manager:

 

Si existieran problemas al iniciar el bot con la tarea programada, por ejemplo de que no encuentra la ruta a algún módulo o error de licencia, revisar lo siguiente:

 

Desmarcar “Ejecutar con los privilegios más altos”

 

En Acciones -> Editar

Agregar la ruta de Rocketbot en la opción “Iniciar en:”

 

 

Desde la CMD

  1. Abrir la CMD como administrador
  2. Escribir el siguiente comando:
    SCHTASKS /CREATE /SC <DATE> /TN "FOLDERPATH\TASKNAME" /TR "C:\SOURCE\FOLDER\APP-OR-SCRIPT" /ST HH:M

    donde <DATE> debes reemplazarlo por:

    1. Diario: DAILY
      SCHTASKS /CREATE /SC DAILY /TN "MyTasks\Notepad task" /TR "C:\Windows\System32\notepad.exe" /ST 11:00
    2. Semanal:  WEEKLY /D DIA
      SCHTASKS /CREATE /SC WEEKLY /D SUN /TN "MyTasks\Notepad task" /TR "C:\Windows\System32\notepad.exe" /ST 11:00
      
    3. Mensual: MONTHLY /D DIA
      SCHTASKS /CREATE /SC MONTHLY /D 15 /TN "MyTasks\Notepad task" /TR "C:\Windows\System32\notepad.exe" /ST 11:00
  3. Si deseas que la tarea programada se ejecute para un usuario específico, agregar al final lo siguiente:
    /RU USER-ACCOUNT


    Ejemplo:

    SCHTASKS /CREATE /SC DAILY /TN "MyTasks\Notepad task" /TR "C:\Windows\System32\notepad.exe" /ST 11:00 /RU admin
  4. Puedes encontrar más información de los comandos aquí: How create task using task scheduler command prompt

 

MacOs y Linux

  1. Crear un .sh con la ruta donde está instalado Rocketbot, seguido de la instrucción -start= más el nombre del robot a ejecutar, ejemplo:Archivo robot.sh:cd user/ruta/rocketbot/
    rocketbot -start=nombre_del_robot
  2. Abrir la terminal y ejecutar crontab -e. Esto debería abrir un archivo en vim. Ahí es donde se listarán las tareas programadas.
  3. En la pantalla de vim, presionar la tecla i para insertar un nuevo cronjob y colocar 0,15,30,45 * * * * cd ~/.carpeta && ./robot.sh, donde los primeros números representan la fecha en un formato que puedes crear acá crontab.guru
  4. Presionar la tecla esc y luego escribir :wq y listo! ya tienes tu tarea programada.



TIPS VIRTUALIZACIÓN

Estos son algunos casos donde los click en imagen por ejemplo 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.

Instalar lo siguiente:

.NET Framework: https://dotnet.microsoft.com/download/dotnet-framework

Visual C++: https://support.microsoft.com/es-es/help/2977003/the-latest-supported-visual-c-downloads

Revisar:

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


 

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


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 dos íconos iguales en las pestañas del navegador y en este caso queremos hacer click en la segunda, debemos especificar una referencia, sino hará click en la primera coincidencia.
Entonces para especificar nuestro click identificamos una referencia cercana:*En este caso vemos que la palabra “Ayuda” está cerca de la pestaña a la cual queremos hacerle click, por lo que la dejaremos como Referencia, y el ícono lo especificamos como foco (donde hará el click), con esto ya realizará el click donde queremos.

 

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:

 

4.- Si sigue sin encontrar las imagenes 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 revisar:

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

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

En MAC

Permiso denegado al hacer OCR

  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 siguiente comando para visualizar los permisos:
    ls -l
    
  3. Veremos que en este caso no tiene permisos de ejecución:

  4. Le damos los permisos con el siguiente comando:
    ejecución para todos los usuarios: chmod 777 tesseract
    ejecución solo para el owner: chmod 744 tesseract
    

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

  6. Ahora ejecutamos nuevamente el comando de OCR




Codificación y decodificación de Caracteres

En Rocketbot es posible codificar y decodificar los caracteres y textos que se obtienen como resultado de una automatización.

Es importante seleccionae la codificación correcta debido a que Rocketbot esta basado en Python, siendo el mas utilizado Latin-1 para caracteres cono acento, ñ o simbolos usados en hablahispana.

Para utilizarlos desde un comando de asignar variables por ejemplo se puede utilizar {my_var}.decode(“latin-1”)

Codec Aliases Languages
ascii 646, us-ascii English
big5 big5-tw, csbig5 Traditional Chinese
big5hkscs big5-hkscs, hkscs Traditional Chinese
cp037 IBM037, IBM039 English
cp273 273, IBM273, csIBM273

German

New in version 3.4.

cp424 EBCDIC-CP-HE, IBM424 Hebrew
cp437 437, IBM437 English
cp500 EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500 Western Europe
cp720 Arabic
cp737 Greek
cp775 IBM775 Baltic languages
cp850 850, IBM850 Western Europe
cp852 852, IBM852 Central and Eastern Europe
cp855 855, IBM855 Bulgarian, Byelorussian, Macedonian, Russian, Serbian
cp856 Hebrew
cp857 857, IBM857 Turkish
cp858 858, IBM858 Western Europe
cp860 860, IBM860 Portuguese
cp861 861, CP-IS, IBM861 Icelandic
cp862 862, IBM862 Hebrew
cp863 863, IBM863 Canadian
cp864 IBM864 Arabic
cp865 865, IBM865 Danish, Norwegian
cp866 866, IBM866 Russian
cp869 869, CP-GR, IBM869 Greek
cp874 Thai
cp875 Greek
cp932 932, ms932, mskanji, ms-kanji Japanese
cp949 949, ms949, uhc Korean
cp950 950, ms950 Traditional Chinese
cp1006 Urdu
cp1026 ibm1026 Turkish
cp1125 1125, ibm1125, cp866u, ruscii

Ukrainian

New in version 3.4.

cp1140 ibm1140 Western Europe
cp1250 windows-1250 Central and Eastern Europe
cp1251 windows-1251 Bulgarian, Byelorussian, Macedonian, Russian, Serbian
cp1252 windows-1252 Western Europe
cp1253 windows-1253 Greek
cp1254 windows-1254 Turkish
cp1255 windows-1255 Hebrew
cp1256 windows-1256 Arabic
cp1257 windows-1257 Baltic languages
cp1258 windows-1258 Vietnamese
cp65001

Windows only: Windows UTF-8 (CP_UTF8)

New in version 3.3.

euc_jp eucjp, ujis, u-jis Japanese
euc_jis_2004 jisx0213, eucjis2004 Japanese
euc_jisx0213 eucjisx0213 Japanese
euc_kr euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001 Korean
gb2312 chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, gb2312-80, iso-ir-58 Simplified Chinese
gbk 936, cp936, ms936 Unified Chinese
gb18030 gb18030-2000 Unified Chinese
hz hzgb, hz-gb, hz-gb-2312 Simplified Chinese
iso2022_jp csiso2022jp, iso2022jp, iso-2022-jp Japanese
iso2022_jp_1 iso2022jp-1, iso-2022-jp-1 Japanese
iso2022_jp_2 iso2022jp-2, iso-2022-jp-2 Japanese, Korean, Simplified Chinese, Western Europe, Greek
iso2022_jp_2004 iso2022jp-2004, iso-2022-jp-2004 Japanese
iso2022_jp_3 iso2022jp-3, iso-2022-jp-3 Japanese
iso2022_jp_ext iso2022jp-ext, iso-2022-jp-ext Japanese
iso2022_kr csiso2022kr, iso2022kr, iso-2022-kr Korean
latin_1 iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1 West Europe
iso8859_2 iso-8859-2, latin2, L2 Central and Eastern Europe
iso8859_3 iso-8859-3, latin3, L3 Esperanto, Maltese
iso8859_4 iso-8859-4, latin4, L4 Baltic languages
iso8859_5 iso-8859-5, cyrillic Bulgarian, Byelorussian, Macedonian, Russian, Serbian
iso8859_6 iso-8859-6, arabic Arabic
iso8859_7 iso-8859-7, greek, greek8 Greek
iso8859_8 iso-8859-8, hebrew Hebrew
iso8859_9 iso-8859-9, latin5, L5 Turkish
iso8859_10 iso-8859-10, latin6, L6 Nordic languages
iso8859_11 iso-8859-11, thai Thai languages
iso8859_13 iso-8859-13, latin7, L7 Baltic languages
iso8859_14 iso-8859-14, latin8, L8 Celtic languages
iso8859_15 iso-8859-15, latin9, L9 Western Europe
iso8859_16 iso-8859-16, latin10, L10 South-Eastern Europe
johab cp1361, ms1361 Korean
koi8_r Russian
koi8_t

Tajik

New in version 3.5.

koi8_u Ukrainian
kz1048 kz_1048, strk1048_2002, rk1048

Kazakh

New in version 3.5.

mac_cyrillic maccyrillic Bulgarian, Byelorussian, Macedonian, Russian, Serbian
mac_greek macgreek Greek
mac_iceland maciceland Icelandic
mac_latin2 maclatin2, maccentraleurope Central and Eastern Europe
mac_roman macroman, macintosh Western Europe
mac_turkish macturkish Turkish
ptcp154 csptcp154, pt154, cp154, cyrillic-asian Kazakh
shift_jis csshiftjis, shiftjis, sjis, s_jis Japanese
shift_jis_2004 shiftjis2004, sjis_2004, sjis2004 Japanese
shift_jisx0213 shiftjisx0213, sjisx0213, s_jisx0213 Japanese
utf_32 U32, utf32 all languages
utf_32_be UTF-32BE all languages
utf_32_le UTF-32LE all languages
utf_16 U16, utf16 all languages
utf_16_be UTF-16BE all languages
utf_16_le UTF-16LE all languages
utf_7 U7, unicode-1-1-utf-7 all languages
utf_8 U8, UTF, utf8 all languages
utf_8_sig all languages



Ejecutar archivo Python

Scripts \ Ejecutar archivo Python

Con este comando podrás abrir y ejecutar archivos Python (.py) dentro de la plataforma. Tiene las librerías más usadas para RPA (Robotic Process Automation) ya disponibles, pero si necesitas instalar alguna en particular debes hacerlo de forma local en la siguiente ruta: Rocketbot/modules/libs

Importante:
Para ejecutar el archivo este comando usa el interprete de Python instalado en tu sistema, por lo que debes tenerlo instalado. Además usa un scope distinto al de Python tradicional, por lo que las variables y librerías que uses en funciones debes importarlas nuevamente dentro de la función.

Datos de entrada Descripción Ejemplo
Ruta a archivo PY Ruta al archivo .py que se desea ejecutar C:/users/user/documents/example.py

💡Nota:
Este comando no retorna ninguna salida o resultado. Si necesitas retornar un valor a una variable de Rocketbot, puedes usar la función SetVar() que recibe dos parámetros, el primero es el nombre de la variable de Rocketbot donde obtendrás el resultado, y el segundo es el valor que deseas asignar a dicha variable. Ejemplo: SetVar(“variable_rocketbot”, variable_python)

Imagen de ejemplo

Video de Curso RPA comando Ejecutar archivo Python



Last post

[frontpage_news widget=”318″ name=”Last Post”]




Fecha con Formato

Darle fecha actual y formato a una variable

Para obtener la fecha correcta en una variable y darle formato a la fecha con el siguiente código:

[datetime.utcnow() – timedelta(hours=5)][0].strftime(‘%H:%M %p’)

En este código le extraemos 5 horas a la fecha UTC y le damos el formato obteniendo como resultado una fecha parecida a:20:23 PM

 




Trabajar con internet Explorer.

Para trabajar con internet explorer se debe configurar el navegador previamente.

Fuente: https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

Required Configuration

  • 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“.

 

 





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.