Problemas relacionados con los clics

Error "No se puede hacer clic en el elemento"

Los clics de ChromeDriver funcionan simulando un clic del mouse en el medio del primer rectángulo del cliente del elemento (o limitando el rectángulo del cliente si no tiene un primer rectángulo del cliente). La forma más fácil de descubrir dónde ChromeDriver intenta hacer clic es abrir las Herramientas para desarrolladores de Chrome e inspeccionar el elemento en el que se hará 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 al estilo margin-bottom en el elemento de imagen, el centro del elemento de anclaje 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 las especificaciones de W3. Para corregir el caso anterior, haz clic en la imagen en lugar del anclaje.

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

  • Haz clic en un ancla cuyos elementos subordinados en los que se puede hacer clic no están dentro de los límites de los anclajes (como se muestra más arriba)
  • Hacer clic en un elemento de forma total o parcial debajo de otro elemento
  • Hacer clic en un elemento fuera de la pantalla cuando haya una superposición fija (el elemento se desplazará a la vista, pero se puede desplazar debajo de la superposición fija)
  • Hacer clic en un elemento en el que no se pueda hacer clic en el medio (por ejemplo, algunos tipos de elementos SVG convexos)

A menudo, estos problemas se pueden resolver haciendo clic en un elemento secundario de un elemento determinado, ocultando o quitando de manera programática el elemento bloqueador, 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 muy probable que esto ocurra porque la ubicación del elemento cambió un tiempo después de que ChromeDriver determinara la ubicación del elemento, pero antes de que ChromeDriver haga un clic en la ubicación.

Para determinar si este es tu problema, detecta la excepción del clic y registra de inmediato la ubicación y el tamaño actuales del elemento. Compara eso con la ubicación que ChromeDriver informa que intentó hacer clic en la excepción y comprueba 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 el error con una página de prueba pequeña que se pueda usar para reproducir el problema (incluso si solo lo activa ocasionalmente).

ChromeDriver no puede hacer clic en un elemento en movimiento

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