Problèmes de clic

Erreur "L'élément n'est pas cliquable"

Le clic ChromeDriver consiste à simuler un clic de souris au milieu du premier rectangle client de l'élément (ou du rectangle client englobant s'il n'a pas de premier rectangle client). Le moyen le plus simple de savoir où ChromeDriver tente de cliquer est d'ouvrir les outils de développement Chrome et d'inspecter l'élément sur lequel cliquera juste avant l'appel de l'opération de clic. Sélectionnez l'élément dans l'outil d'inspection et notez les cases bleues représentant les rectangles client de l'élément, comme illustré ci-dessous. ChromeDriver tentera de cliquer au milieu de la première action.

Si ChromeDriver génère l'erreur "L'élément n'est pas cliquable", il est très probable que cet emplacement ne soit pas cliquable par l'utilisateur. Pour effectuer un test, placez vous-même votre curseur au milieu du premier rectangle du client et vérifiez si cet emplacement est cliquable.

Dans le cas ci-dessus, le test tentait de cliquer sur l'élément d'ancrage. Dans ce cas, l'ancre n'est pas cliquable, seule l'image enfant l'est. En raison d'un style margin-bottom sur l'élément image, le milieu de l'élément d'ancrage se situe en dehors des limites de l'image cliquable. Par conséquent, ChromeDriver génère une erreur. Pour en savoir plus sur la détermination du positionnement ou du dimensionnement, consultez la spécification W3. Pour corriger le cas ci-dessus, cliquez sur l'image au lieu de l'ancre.

L'erreur "L'élément n'est pas cliquable" se produit souvent dans les situations suivantes lorsqu'un test tente de:

  • Cliquez sur une ancre dont les éléments descendants cliquables ne se trouvent pas dans les limites de l'ancre (comme ci-dessus).
  • Cliquer sur un élément entièrement ou partiellement sous un autre élément
  • Cliquez sur un élément hors écran lorsqu'une superposition fixe est présente (l'élément sera affiché à l'écran, mais vous pourrez le faire défiler sous la superposition fixe)
  • Cliquez sur un élément qui n'est pas cliquable au milieu (par exemple, certains types d'éléments SVG convexes).

Ces problèmes peuvent souvent être résolus en cliquant sur un enfant de l'élément donné, en supprimant ou en masquant l'élément bloquant par programmation, en utilisant l'API des interactions avancées pour cliquer à un décalage par rapport à l'angle supérieur gauche de l'élément, ou en simulant un événement de clic de souris en JavaScript.

Erreur "L'élément n'est pas cliquable"

Cela est probablement dû au fait que l'emplacement de l'élément a changé quelque temps après que ChromeDriver a déterminé l'emplacement de l'élément, mais avant que ChromeDriver n'effectue un clic à cet emplacement.

Pour déterminer si c'est votre problème, interceptez l'exception à partir du clic, puis consignez immédiatement l'emplacement et la taille actuels de l'élément. Comparez ce point avec l'emplacement indiqué par ChromeDriver sur lequel il a tenté de cliquer dans l'exception pour voir s'ils sont différents. Si tel est le cas, vous devez attendre que l'élément ne bouge plus ou essayer de cliquer à nouveau. Si ce n'est pas le cas, signalez un bug avec une petite page de test qui peut être utilisée pour reproduire le problème (même s'il ne déclenche le problème qu'occasionnellement).

ChromeDriver ne peut pas cliquer sur un élément en mouvement

Cette fonctionnalité n'est pas compatible avec ChromeDriver. Si l'élément finit par s'arrêter, attendez que cela se produise. Si l'élément n'arrête jamais de bouger, ChromeDriver ne garantit pas que le clic aboutira.