Maison >développement back-end >C++ >Pourquoi mon WebDriverWait semble-t-il être ignoré lors de l'exécution sans débogage ?

Pourquoi mon WebDriverWait semble-t-il être ignoré lors de l'exécution sans débogage ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 19:55:40762parcourir

Why Does My WebDriverWait Seem to Be Ignored When Running Without Debugging?

WebDriver.Wait N'attend pas l'élément spécifié

Requête :

Mon code tente d'attendre l'apparence d'un élément avant de récupérer son contenu textuel. En parcourant le code, il fonctionne correctement. Cependant, lorsqu'elle est exécutée sans points d'arrêt, l'attente semble être contournée et une exception est levée.

Pourquoi l'attente est-elle négligée ?

Extrait de code :

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
IWebElement message = wait.Until(driver => driver.FindElement(By.ClassName("block-ui-message")));
string messageText = message.Text;

Réponse :

Une approche alternative consiste à utiliser Méthode ElementIsVisible() de WebDriverWait en combinaison avec une stratégie de localisation modifiée :

string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");

Utilisation de DotNetSeleniumExtras.WaitHelpers avec NuGet :

Si vous utilisez SeleniumExtras et WaitHelpers, le code peut être modifié comme suit :

string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn