# ¿Cómo entender que un selector no es óptimo?

Para un mismo elemento de la interfaz web se pueden elegir muchos selectores diferentes, todos los cuales funcionarán en mayor o menor medida. Por ejemplo, en el cliente web de WhatsApp, el selector

`#main > footer > div._2lSWV._3cjY2.copyable-area > div > span:nth-child(2) > div > div._1VZX7 > div._2xy_p._3XKXx > button`

y el selector

`button[aria-label="Enviar"]`

designarán el mismo elemento de control: el botón "Enviar". Y ambos funcionarán en el momento. El primer selector se basa en un largo camino desde el principio (elemento raíz) de la página web hasta el elemento de control específico "hacia abajo" en el árbol de jerarquía de elementos de control. El segundo selector se basa en el tipo de etiqueta del elemento de control y un atributo característico de esa etiqueta. A pesar de que en el momento de la escritura ambos selectores funcionan correctamente, el primer selector tiene una probabilidad mucho mayor de "romperse", es decir, dejar de funcionar, en la próxima actualización de la aplicación web o del sitio web. Por ejemplo, en el camino del selector aparecerán o desaparecerán elementos de control intermedios, y, por lo tanto, cambiará el propio camino desde el elemento raíz hasta el que necesitamos.

Además, si en el selector hay combinaciones pseudoaleatorias de letras y números (como 1VZX7 o 3XKXx en el ejemplo anterior), esto es un signo de un selector potencialmente inestable. Por ejemplo, esta combinación de letras y números puede cambiar en cada visita del usuario al sitio, y para otro usuario será diferente. Se puede verificar esto cerrando sesión en el sitio, cerrando el navegador, abriéndolo y volviendo a la página deseada, o simplemente accediendo a esta página desde otra computadora o navegador, y verificando si las mismas letras y números aparecen en ese lugar del selector, o si son diferentes. También puede ayudar (pero no siempre) la combinación Ctrl+F5, que provoca una recarga completa de la página. Sin embargo, incluso si después de todas estas acciones, la combinación de letras y números no ha cambiado, puede cambiar después de la siguiente compilación (actualización) del sitio web o del servicio web, ya que los modernos frameworks de sitios web (como Angular, React, etc.) pueden generar estos nombres de clases aleatoriamente en cada recompilación de la página.

Así, para que el robot en producción funcione de manera confiable, y el desarrollador no tenga que corregir los selectores en los bloques de automatización de navegadores con demasiada frecuencia, es muy importante en la etapa de desarrollo elegir un selector lo más estable posible. No siempre, pero muy a menudo, el selector más estable es el más corto de todos los posibles para ese elemento.

Si la herramienta de grabación no le proporciona un selector lo suficientemente estable, debe seleccionarlo o editarlo manualmente. Para ello, es necesario conocer la notación de selectores CSS.


---

# 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/rabota-v-sherpa-designer/rukovodstvo-po-veb-selektoram/kak-ponyat-chto-selektor-ne-optimalnyi.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.
