Problemas relacionados con los clics

Error "No se puede hacer clic en el elemento"

Los clics en ChromeDriver funcionan simulando un clic del mouse en el medio del primer rectángulo de cliente del elemento (o el rectángulo delimitador del cliente si no tiene un primer rectángulo de cliente). La forma más fácil de descubrir dónde ChromeDriver intenta hacer clic es abrir las Herramientas para desarrolladores de Chrome y, luego, inspeccionar el elemento en el que se puede hacer clic justo antes de que se llame a la operación de clic. Selecciona el elemento en el inspector y observa los cuadros azules que representan los rectángulos del cliente del elemento, como se muestra a continuación. ChromeDriver intentará hacer clic en el medio de la primera.

Si ChromeDriver muestra el error "No se puede hacer clic en el elemento", es más probable que el usuario no pueda hacer clic en esa ubicación. Para probarlo, coloca el cursor en el medio del primer rectángulo del cliente y comprueba si se puede hacer clic en esa ubicación.

En el caso anterior, la prueba intentaba hacer clic en el elemento de anclaje. En este caso, no se puede hacer clic en el ancla; solo se puede hacer clic en la imagen secundaria. Debido a un estilo margin-bottom en el elemento de imagen, el medio de este queda fuera de los límites de la imagen en la que se puede hacer clic y, por lo tanto, ChromeDriver arroja un error. Para obtener más información sobre cómo se determina el posicionamiento o el tamaño, consulta la especificación de W3. Para solucionar el caso anterior, haz clic en la imagen en lugar del ancla.

El error "No se puede hacer clic en el elemento" suele ocurrir en las siguientes situaciones cuando una prueba intenta hacer lo siguiente:

  • hacer clic en un anclaje cuyos elementos subordinados en los que se puede hacer clic no se encuentran dentro de los límites de anclaje (como se explicó anteriormente)
  • haz clic en un elemento total o parcialmente debajo de otro elemento
  • hacer clic en un elemento fuera de la pantalla cuando hay una superposición fija (el elemento se desplazará para que se vea, pero se puede desplazar debajo de la superposición fija)
  • Hace clic en un elemento en el que no se puede hacer clic en el medio (p. ej., algunos tipos de elementos SVG convexos).

Estos problemas a menudo se pueden resolver haciendo clic en un elemento secundario de un elemento determinado, ocultando o quitando de forma programática el elemento de bloqueo, usando la API de interacciones avanzadas para hacer clic en un desplazamiento desde la parte superior izquierda del elemento, o simulando un evento de clic de mouse en JavaScript.

Error "No se puede hacer clic en el elemento"

Es probable que esto ocurra porque la ubicación del elemento cambió en algún momento después de que ChromeDriver determinara su ubicación, pero antes de que ChromeDriver realmente haga clic en esa ubicación.

Para determinar si este es tu problema, detecta la excepción del clic y registra inmediatamente la ubicación y el tamaño actuales del elemento. Compara eso con la ubicación en la que ChromeDriver intentó hacer clic en la excepción y fíjate si son diferentes. Si es así, debes esperar a que el elemento deje de moverse o intentar hacer clic de nuevo. De lo contrario, informa un error con una pequeña página de prueba que pueda usarse para reproducir el problema (incluso si solo activa ocasionalmente el problema).

ChromeDriver no puede hacer clic en un elemento en movimiento.

Esta función no es compatible con ChromeDriver. Si el elemento se detiene finalmente, espera a que eso ocurra. Si el elemento nunca deja de moverse, ChromeDriver no garantiza que el clic se realice correctamente.