Comment tester le texte d'info-bulle à l'aide de la Souris en utilisant Selenium webdriver
J'ai un petit bagage icône qui quand placez le pointeur de la souris sur l'icône, une info-bulle s'affiche. Je veux tester ce que par l'écriture de code C# dans Visual Studio.
Ici est de savoir comment les bagages de l'icône affichée dans le html:
<div class="icon_png information icon_baggageyes" title="1 piece included in this fare."></div>
Et voici mon code pour tester l'info-bulle:
Actions a = new Actions(driver);
IWebElement tooTipObject = driver.FindElement(By.XPath("//div[@class='icon_png information icon_baggageyes']"));
a.MoveToElement(tooTipObject).Click().Build().Perform();
Le problème est quand je debug, étape par étape, le code ci-dessus, le texte d'info-bulle s'affiche. Mais quand je lance le test, le texte de l'infobulle ne montrons maintenant.
En recherchant sur internet, certaines personnes disent que la raison en est que la souris ne se concentre pas sur les bagages icône suffisamment longtemps pour que l'info-bulle de texte à afficher.
Mais comment résoudre ce problème? J'ai été à la recherche de solutions, mais ne pouvait pas en trouver un qui fonctionne pour le mien.
Et une autre question est de mon code: a.MoveToElement(tooTipObject).Click().Build().Perform();
le texte de l'infobulle affiche uniquement si je mets .Click()
dans le présent code. Mais je suis en train de tester au survol de la souris sur la fonction, ne doit pas être en cliquant sur l'icône. C'est tellement bizarre.
OriginalL'auteur user1642888 | 2013-03-14
Vous devez vous connecter pour publier un commentaire.
Depuis la bulle d'aide est déclenchée par le
div
'stitle
attribut, que diriez-vous simplement de vérifier que la valeur de l'attribut? Il serait en s'appuyant sur l'hypothèse que tous les navigateurs affichent letitle
dans une info-bulle lors du survol (qui, autant que je sache, tous les navigateurs de bureau).Googler autour brièvement, il semble que quelque chose le long de ces lignes devrait fonctionner:
Après cela, vous pouvez vérifier la
titleText
est comme prévu.OriginalL'auteur Greg Haskins
Utiliser Java Robot pour l'INTERFACE utilisateur de l'interaction; Robot est utilisé pour contrôler les actions de la Souris.
OriginalL'auteur Prashanth Sams
Je vais avoir le même problème. Si ce que vous dites est correct OP que vous n'êtes pas planant au-dessus de l'élément assez longtemps alors je ne comprends pas pourquoi la méthode est appelée "déplacer l'élément de la" au lieu de "passer à l'élément, puis tout de suite à partir de l'élément"
Aussi cliquez et maintenez présente le même comportement pour moi, comme vient de passer à un élément. Je pense que c'est probablement un bug avec le sélénium.
C'est décevant. Je suppose que je vais juste utiliser le clic, mais en cliquant sur les ensembles d'éléments d'un autre ensemble d'actions que je ne veux pas d'une compensation, alors que planant est censé m'aider juste afficher une info-bulle.
Je suis en utilisant chromedriver.
OriginalL'auteur obesechicken13
J'utilise le robot pour passez la souris sur l'icône. J'ai eu de calibrer le robot de travailler avec le sélénium pour faire cliquer sur des éléments plus facile.
Voir la réponse ici pour plus d'informations sur l'étalonnage de robot avec le sélénium.
OriginalL'auteur obesechicken13
Je suis probablement un peu en retard, mais ce que j'ai trouvé c'est:
Je suis essentiellement à des essais en Chrome dans de nombreux OS combinaisons, avec le navigateur agrandie, et sans sommeil, j'ai été en cours d'exécution dans des problèmes avec la longueur de temps que la bulle d'aide est affiché, principalement sous Linux (manque de fiabilité sur Mac).
Je suis un peu incertain pourquoi le Fil.Sleep(2000) est effectuée dans le cadre des "Actions". J'ai essayé quelques personnalisées différentes méthodes d'attente, mais j'ai seulement réalisé la fiabilité que j'ai besoin par le biais d'un explicite de Sommeil de 2 secondes ou plus.
Je suis sûr qu'il ya de meilleures options, mais cela fonctionne pour moi!
OriginalL'auteur Andrew.P.Peterson