# Guardar Currículos de HeadHunter

Consideremos un ejemplo de un robot que guarda currículos del sitio hh.ru.

El proyecto del robot consiste en un diagrama.

El diagrama del proyecto se ve así (para mayor comodidad, los bloques del diagrama están numerados):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfoJ1G5-ad76k0LtUnBDgVzLni8eLdVUh9hWB8cbJ0HIG_eu7vVyP_qDIieOp33xO39N7rHPEHC1d1PGfl1ZUVtBZwFxFbOekwrWIAiinYWM7_FP3R4_SaZvYTlFWMpVOvtuetTbQ?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcmitzg0qRtCXKpMrpFlK08UyZAowBWjPq2aCvXsPfcC-lHIMKH94BX9RdqmlGzA_RkY4CcxI6882rLd0porEVjSk--eV_yP7j7cpqhyT6uRNunn0lIA3LBwmfIvBbR4F3bhbpd?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

1. **Bloque "Inicio"** (desde este bloque comienza cualquier diagrama).
2. **Bloque "Ventana de entrada de texto"** permite mostrar un cuadro de diálogo modal destinado a recibir información del usuario. Para este bloque se especifican las siguientes propiedades:

* Título (texto que se mostrará en el encabezado del cuadro de diálogo. En este caso: “Sherpa RPA”);
* Mensaje (texto que se mostrará dentro del cuadro de diálogo. En este caso: “Ingrese la consulta de búsqueda:”)

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdbtGm2IcJGlLEp43uVGKz33zPscZimfZDyr1VGzbkFfxkuRCcX39d1VuNcKQMTOJ7kiLqLvy0--qTzGHWYNJHbZU1c7WrPVTJvAeHWCE-8HUpKvy2xbVjj9cRTkp8eiHQ56_5t9g?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

3. **Bloque "Codificar cadena de URL"** permite codificar una cadena para su transmisión en una URL. Para este bloque se especifica la cadena de entrada “Texto”, y como salida la cadena resultante “Resultado”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcaUmaN5lBFwM7ih1yku5l0jsz38BTB4Fb1ni1tqPFUdsr3QotR9YzaALIa-M-NSYy5gNCJhW6VIBufFuXLNXYPUd607FdC1MfvEa74XZTAjYh5fW3uW4R-xddzDUKZ_Z6F8gh7zA?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

4. **Bloque "Asignar valor a la variable"** establece nuevos valores para una o varias variables. En este caso, en las propiedades se especifican dos valores que deben asignarse a dos variables, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfsYQWggFoEucCu8DxnbT3-tpGxclOxJg_1rYf5sAWvEM8gFHc8Tk56DLmEruYp48nNYk4I-xYFjg-Mfe1qaNTdPOnZD_7yPhvgNo7jOelzkDvZCfKYAcxG4BSzZBwCCEy3rWIf5Q?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

5. **Bloque "Iniciar Chrome"** permite iniciar el navegador Google Chrome. Para este bloque se especifican las siguientes propiedades:

* URL (dirección de la página que se abrirá al iniciar, especificada mediante una variable);
* Pestaña actual (si se activa la bandera, la página se abrirá en la pestaña seleccionada actualmente del navegador);
* Tiempo de espera (tiempo de espera para iniciar la aplicación y cargar la pestaña en segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcpc7wE9Wkf8pirj0_4P7GcDyNOJerB3p6FENehumDWsXbTiZvqMXd8iVt1Mj_W9XW4BWEXjNl_rJlycCpHRUJbqFXotuVT3LvXkYpDN76vrkccnps5kspY1jxcXpaNvISK8Kb-?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

6. **Bloque "Contar elementos"** permite obtener la cantidad de elementos del mismo tipo en una página web según un selector dado. Para este bloque se especifican las siguientes propiedades:

* Selector (identificador de la ventana del navegador y del elemento de la página web, común para todos los elementos del mismo tipo buscados);
* ID de proceso (variable en la que se almacena el identificador del proceso y la pestaña del navegador utilizados por este bloque);
* Tiempo de espera (tiempo límite para contar elementos en segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdkh2h4PPTz66h-QBp4QLMA4WzFVZKfZCrXK57Y-BDjLkslDnLBJMjgIzMCp4MKM-MVQj0EVLanpAvgkb-GTDvPJ1PkYBjJblp1egDj4QxsdT5Q3sjDZRBsSwv_p_L7ILBBvoPXyw?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

7. **Bloque "Bucle"** permite repetir una cadena de acciones (bloques) varias veces y al mismo tiempo contar la cantidad de iteraciones del bucle, registrando la cantidad actual en una variable especial (especificada en la propiedad “Bucle”), que luego se puede utilizar en otros bloques. En la primera entrada al bloque, el valor de la variable de la propiedad “Bucle” se iguala a “Valor inicial” (en este caso es 0), y luego la ejecución del escenario continúa hacia la salida “Bucle” de este bloque (en lo que se llama “cuerpo del bucle”). Tan pronto como la ejecución del escenario vuelva a este bloque, el valor de la variable “Bucle” se incrementará en el valor de “Paso” (en este caso, es 1), y nuevamente se producirá un salto hacia la salida “Bucle”. Una vez que el valor de la variable “Bucle” sea mayor o igual que “Valor final” (en este caso, está dado por la variable $Count), la ejecución del escenario continuará hacia la salida inferior del bloque. No olvide conectar la salida del último bloque en el cuerpo del bucle con la entrada de este bloque o de alguno de los bloques anteriores.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfFhv3Cc1YZAkXrpia7Fb7VbJoIOgux1MuSEVj88XmoWfgIBol7QQ4iCMhH0DP69c_LCgZFbwpinR1mJpGQYlpdi8OCNIvtD6Z1O2ETYla8IvEXpNArLQye_8X0maw2mGOKIOxMNQ?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

8. **Bloque "Log"** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del escenario del robot. Para este bloque se especifica la propiedad “Valor”. En comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot el índice de la página procesada.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfDYllrYy0KGOMiBvdhfTSZNyrp3slXpBT84gRlewiPa84fGFTDN8eO-BDgoQxnFAe0aLtX_X3sHBp8pnS3r_gZCBeCun1SsKMeGKPHoWXIf1CQ6PmJWPVDo6SESxALwrwfEPC2Bg?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

9. **Bloque "Asignar valor a la variable"** establece nuevos valores para una o varias variables. En este caso, en las propiedades se especifica un valor que debe asignarse a una variable, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXclCcT0pnune75OeDM_Wl0C-QJ58LuN-7AiuVPzKK2EMvQKl7GjoDwQE-u1k51weNT_Zrsqu46BfjmfjxSjY6Zt84XBCQchmHh5VujWCIgdqKqrSiDjT3ZXDfXTeKbKUolvbD0sCg?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

10. **Bloque "Condición"** verifica la condición especificada para su veracidad, después de lo cual la ejecución del escenario continúa hacia la salida “Sí” (si se cumple la condición) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual (==)/ mayor (>)/ menor (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces salida “Sí”, de lo contrario – salida “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces salida “Sí”, de lo contrario – salida “No”.

En este caso, como condición se establece: $countpage==0. Es decir, la variable que indica el número de página es igual a cero.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXetXQ5Ob-M9lCp3HzRjNeVaILutpQ2z-9RxTabW6PsktJbNUpYeedb-rnB7wT1wEau1rwuy2a_JwUI_MZ4nldWnnFwirxBC6-N2lHWbxNN5qbKaEyzg0H4utpLOmExBYHSZe6Hp?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

11. **Bloque "Asignar valor a la variable"** establece nuevos valores para una o varias variables. En este caso, en las propiedades se especifican dos valores que deben asignarse a dos variables, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXedGqCnIfQwyLFfqJdtlhv32SqeQBt8rvY0qe2TMnORJEEPYaat-NG-xdXUe5wzOlEw4xgVYP7FjpuSGwR5bxEdN4RZfqYAE2AilU139DU3BeFLIAfCvYN56zA404a5J4acbnFR5Q?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

\--- title: "Descripción de bloques" description: "Descripción de los bloques del proceso" ---

Los bloques 12 - 18 están parcialmente grabados con la herramienta “[Grabación](https://docs.sherparpa.ru/es/sherpa-rpa/sherpa-designer/rabota-v-sherpa-designer/osnovnoe-menyu/panel-razrabotka/menyu-zapis/zapis-deistvii-polzovatelya)”. Estos bloques contienen una serie de emulaciones de clics y pulsaciones de teclas, cuyo resultado será guardar todo el resumen en un archivo en formato html.

19. **Bloque “Condición”** verifica la veracidad de la condición especificada, después de lo cual la ejecución del guion continúa hacia la salida “Sí” (si se cumple la condición) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual a (==)/ mayor que (>)/ menor que (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces la salida es “Sí”, de lo contrario – la salida es “No”.

En este caso, se establece la condición: $origfilename != "". Es decir, la variable no está vacía.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf7ukTWXAoddcAAuebmjNypBnrUzPXMyeTlPwhlqNOC7OFcbcpmvIosHxjtofAbQjtH9x3hGrhFYyrtqIkQwV9aZBA3MtOztQ1I24nUq1hG3xNBHjsgkbz-InwfGJBHDM4Oe7hbIA?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

20. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfu-Uop1smQc92dvX4Y1VkbLf41zLmFS9bi26xFO7F_oJJ6vrzcE85OhCHFWlxDNve5DnNggOnKLVOnvJuU_AQTzagYRhRONVAyNC-9tHrw9BO3KEbz5nVjckdkcRg32mk6dkmEdQ?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

21. **Bloque “Número aleatorio”** genera un número aleatorio con parámetros dados. Para este bloque se especifican las siguientes propiedades:

* Valor mínimo (el número aleatorio no será menor que este valor);
* Valor máximo (el número aleatorio no será mayor que este valor);
* Paso (paso del número aleatorio).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdLC_EMHo4KJN-JNCDKuDF8OZx5qeHM2P3rlYJbZUDGg_3LK3pJ7GZll92mZiskUP9Mr6z9zasXtlTmdSd6ET7E2BQzkuu8aIoG15iW6KKUJXmF3qpbRmMusAuufcbDZfYJEynEqw?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

22. **Bloque “Renombrar archivo/carpeta”** permite asignar un nuevo nombre al archivo o carpeta especificados. En este caso, al archivo. Para este bloque se especifican las siguientes propiedades:

* Ruta (ruta al archivo cuyo nombre debe cambiar);
* Postfijo (postfijo que se añadirá al nombre del archivo);
* Temporal (si se activa la bandera, el renombramiento del archivo se realizará solo dentro del funcionamiento del programa, no habrá cambios en el sistema de archivos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd-u4fxlj4bmdToFp91PTWgZeobF54kMCJgqfaE7C_G79Yd3hPT_balbozK7hpKzP_9-ZbUJ-rXkWZv-tmPalH1r3T-prWJzsbRCe-RMVyzUgjB9ZWrbweL-QriaLOvM7UM1Vu9Nw?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

23. **Bloque “Asignar valor a la variable”** establece nuevos valores para una o varias variables. En este caso, en las propiedades se indica un valor que debe asignarse a una variable, respectivamente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfWLfVnAHJCl7nxl1W6F0zSaCGD3H9EOnjSlgpjL2tAN2hjEDcqpWqdqKnY4IPkbqk5N8aCD1G6L11nEgOmUmNEQ48YMElhKJeLZbceWM5T0OFw3XyL7swkVFVhOVGtATs7woKEcw?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

Los bloques 24 - 25 contienen una serie de emulaciones de pulsaciones de teclas, cuyo resultado será la entrada del nombre del archivo en la ventana de guardado de Google Chrome.

26. **Bloque “Clic del ratón”** está grabado con la herramienta “Grabación”. Este bloque emula un clic del ratón, cuyo resultado será la transición a la siguiente página.
27. **Bloque “Limpiar caché de selectores”** permite limpiar la caché interna de selectores. Al utilizar selectores para acelerar la búsqueda de elementos en la página, se utiliza una caché interna. La información sobre el elemento se almacena en la caché después de su identificación exitosa, y en adelante, al buscar el elemento, primero se verifica la caché. Si hay información en la caché sobre este selector, se extrae de allí, lo que acelera significativamente el trabajo del robot. Sin embargo, en algunos casos, esta caché puede afectar negativamente el funcionamiento del guion. Esto se observa a menudo al procesar cíclicamente elementos similares en una misma página, por ejemplo, resultados de búsqueda. En tales casos, se recomienda limpiar la caché al iniciar cada iteración de recorrido de elementos similares en la página.
28. **Bloque “Cerrar pestaña del navegador”** permite cerrar la pestaña especificada del navegador indicado. Para este bloque se especifica el ID del proceso (variable en la que se almacena el identificador del proceso y la pestaña del navegador que utiliza este bloque).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf_RUtD_XltvrsttIUQyokm_BQC6KNQr3TT-4u-ruqHxQoURsBTd7g4HNi4K6J6ICfS39vH1uJtPM4nxPZ6Z3JJatRY0c22lLX3KnMFmr-8v-2iaF0f-eZ6rZzm3ZUlCPWuXk-QFQ?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

29. **Bloque “Pausa”** pausa la ejecución del guion durante un tiempo determinado. Para este bloque se especifican las siguientes propiedades:

* Unidad de medida (unidad de medida en la que se establece la duración de la pausa);
* Duración (valor del intervalo de tiempo en las unidades de medida especificadas);
* Ejecutar inmediatamente (la bandera activada permite aplicar la demora inmediatamente en el primer paso de este bloque desde el inicio del guion del robot).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcEZqql1OVckfJAqO3HLIW1oin15rxToZi9ieW7Ek3_QtsPVzHySdxMhNlya9EeRrDAbtllH9GnogajyMk1rmtGVL_Be8kjYYfltowq2UpiKFbdMf4dyrLxnAKDA-Ylxrx8xPV-0Q?key=7s1g-lT9vbX__uGNSqzDxVxY" alt=""><figcaption></figcaption></figure>

30. **Bloque “Fin”** (este bloque finaliza la ejecución del guion o devuelve el diagrama del subproceso al proceso principal).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/es/sherpa-rpa/sherpa-designer/primery-robotov/save-headhunter-resumes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
