J'essaie de localiser une info-bulle dans un DIV, puis d'extraire le texte de l'info-bulle visible lorsque je fais la souris survolez sur l'info-bulle. Copier au-dessous de l'instantané de code à partir d'UI -
var tooltipElement = driver.FindElement(By.Id("tooltip-report-account-" + accountNumber));
Assert.AreEqual(tooltipElement.Text.ToLower().Trim(), 'This account is unavailable');
3 Réponses :
Je suppose que la chaîne Ce compte est est un préfixe dans la fonction javascript, pourquoi ne pas simplement comparer avec Indisponible qui est le texte du parent de cet identifiant d'élément.
var tooltipElement = driver.FindElement(By.XPath("//i[@id='tooltip-report-account-" + accountNumber + "']/parent::div"));
Assert.AreEqual(tooltipElement.Text.ToLower().Trim(), 'unavailable');
Vous devez d'abord effectuer le survol de la souris en utilisant la classe d'action, puis essayer de localiser l'élément qui affiche l'info-bulle
WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(10)); var element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath(<element xpath>))); Actions action = new Actions(Driver); action.MoveToElement(element).Perform(); //Waiting for the menu to be displayed System.Threading.Thread.Sleep(4000);
Si vous ne parvenez pas à trouver l'élément; alors peut-être que le localisateur utilisé a un problème. Essayez avec xpath ci-dessous pour une fois:
var tooltipElement = driver.FindElement(By.Xpath("//*[contains(@id,'tooltip-report-account')]"));
Pourquoi ne pas stocker le numéro de compte dans le contexte et le récupérer. Pour autant que je me souvienne, l'info-bulle ne fonctionne que le survol de la souris. Avez-vous vérifié ce lien
localiser une info-bulle dans un divvraisemblablement le texte Indisponible semble être l'info-bulle, mais vous ne passez pas nécessairement la souris sur l'info-bulle et vous en avez besoin pour mettre à jour la question avec l'élément sur lequel vous devez Survoler la souris