10
votes

Le sélénium clique sur un mauvais lien (ou ne clique pas sur un lien du tout) sur certaines machines

J'utilise Selenium webdiver 2.5.0 (essayé 2.13.0, cela n'a pas aidé). J'essaie de cliquer sur un lien comme celui-ci: XXX

Avant son fonctionnement, mais j'ai essayé d'exécuter les scripts après 3 semaines et J'observe 3 comportements différents sur 3 machines:

  1. machine A: Il n'y a pas de clic sur le lien du tout, il n'y a pas non plus d'erreur.

  2. machine B: il clique sur un lien différent! Parfois une ci-dessus, parfois une ci-dessous.

  3. machine C (virtuel): Ça fonctionne.

    Je n'ai pas complètement testé cela (passé une demi-journée aujourd'hui), mais quelqu'un est tombé sur un tel comportement?

    J'ai redémarré mon PC, ré-ajouté les bibliothèques de sélénium. "Sendkeys (Entrée)" aide, mais cette question s'est produite non seulement de liens, mais également d'au moins des boîtes radio, où "SendKeys (Entrée)" ne fonctionne pas.

    Veuillez partager vos pensées. < / p>

    update : les navigateurs sont les mêmes sur au moins 2 machines, Internet Explorer 8.0


3 commentaires

Est-ce que cela se produit avec un pilote de navigateur spécifique, tous les pilotes de navigateur, le pilote HTML? Si un pilote de navigateur spécifique, les versions de navigateur sont-elles en ligne sur les 3 systèmes?


Sont-ils tous exactement le même navigateur? et lequel?


Les navigateurs sont les mêmes sur au moins 2 machines, Internet Explorer 8.0


5 Réponses :


0
votes

On dirait que l'élément n'est pas présent dans le HTML de la page, mais est ajouté de manière dynamique une fois la page chargée. Ce qui se passe dépend de la rapidité avec laquelle la machine est rapide et à quel point le texte est unique. Je parierai que si vous avez ajouté un long sommeil ( E.g. , une minute), vous obtiendriez le même résultat sur les 3 machines. Si tel est le cas, cela indique le problème le plus classique de test de sélénium - essayer d'agir sur des pages qui ne sont pas complètes. Vous devez trouver un élément à attendre qui garantira la présence du lien que vous souhaitez cliquer sur.


0 commentaires

8
votes

répondit par nebehr.g ... @ gmail.com sur les problèmes de sélénium:

Ce problème empêche de tirer de temps en temps et est généralement renvoyé avec demande de clarification. La ligne inférieure est, InternetExExplorerDiver calcule les coordonnées de certains objets de manière incorrecte et clique sur le mauvais endroit. Une raison pour cela est la valeur de zoom autre que 100%; Cependant, il est reproductible pour certaines commandes pour 100% de zoom.

Je suppose que ce serait utile si vous pouviez créer une page d'exemple pour démontrer ce problème. En attendant, pourquoi n'utilisez-vous pas la méthode JavaScript Cliquez sur () pour les contrôles incriminés?

http://code.google.com/p/selenium/issues/detail?id=3052


1 commentaires

Est-il possible que les versions plus anciennes de Firefox aient également ce problème?



0
votes

Je viens d'avoir le même problème dans Firefox. Le zoom était à 100% et la sélection était de XPath un certainement correct. SUR LE PROBLÈME DÉPAREÉ Lorsque j'ai maximisé le BRAWERWINDOW!

Code: (API Python) P>

   self.driver.maximize_window()


0 commentaires

1
votes

Il y a beaucoup d'informations utiles dans la réponse d'Andrey et dans la question de sélénium, il mentionne à https://code.google.com/p/selenium/issues/detail?id=3052 . Juste pour relier toutes ces pièces d'informations ensemble et offrir une solution de contournement réussie ...

Moi aussi je ressens la question des clics survenant aux mauvaises coordonnées de l'écran - quatre ans après le mentionnement de l'OP! Comme d'autres l'ont dit:

  • Le problème est lié à InternetExExplorerRiver. J'ai le problème Lorsque vous testez, c'est-à-dire 9, mais pas chrome, Firefox ou même IE 8.
  • Comme mentionné dans la question de sélénium, le site Web que je teste utilise des cadres.

    J'ai essayé plusieurs solutions de contournement suggérées dans ce post et ailleurs. Toutes les suivantes n'a pas aidé:

    • Mise à jour sur le dernier InternetExExplorerRiver (version 2.47.0)
    • Maximiser la fenêtre du navigateur.
    • Réglage du navigateur Zoom sur 100%.
    • à l'aide d'une chaîne d'action, avec ou sans mobile_by_offset, au lieu de la méthode de clic de WebDriver.

      Comme suggéré par Andrey, qu'est-ce que l'aide utilise JavaScript au lieu de la méthode de clic de WebDriver (). Voici une ligne de code Python qui fait l'astuce: xxx

      Ceci suppose que "pilote" est une instance de selenium webdiver, et "CSS_SLector" est une chaîne identifiant l'élément que vous avez Voulez-vous cliquer et que JQuery est chargé.


0 commentaires

4
votes

Une autre chose à vérifier est la résolution de l'écran (pas la résolution de bureau mais la taille du niveau du système du texte et des icônes). J'ai deux ordinateurs portables dans mon bureau que vous avez utilisé pour tester, une fenêtre exécutée de Windows 7 et l'autre Windows 10. Sur les deux, la résolution de l'écran était supérieure à 100% et sélénium a eu des problèmes de déplacement de la souris au bon endroit pour la souris Événements comme Click and Vover. Dès que la résolution de l'écran a été réglée à 100%, toutes les actions de la souris fonctionnaient correctement.

Windows 7: http://windows.microsoft.com/en-us/windows7/make-the-text-on-Your-screen-larger-or-smaller?v=t

Windows 10: https://superuser.com/questions/951199/windows- 10-system-font-taille-changement


2 commentaires

Cette réponse m'aide. Merci!


Tu m'as sauvé la vie! Je perdais un peu de temps pour essayer de comprendre pourquoi mon clic n'a pas fonctionné correctement. Merci beaucoup.