Bonjour,


Je poste ce commentaire pour demander conseil et aide des gens qui ont eu l'occasion de travailler avec l'API Webdriver de Selenium, s' ils veulent bien partager leurs connaissances sur ce point là


Il s'agit de l'automatisation des tests d'interface utilisateur dans le cadre de tests de non régression, sur IE,Chrome et Firfox

Je développe mes scénarios de tests sur visual studio en C#, mon problème réside dans la maîtrise du temps d'attente pour la récupération du contrôle et après le temps entre l'apparition du contrôle et l'exécution du traitement. C'est certainement un problème que vous avez dû rencontrer à l'utilisation de cet outil.

Contexte :

Mes contrôles IU je les choppe avec CSS selector et j'applique un temps d'attente conditionné par l'apparition du contrôle.

Dans ma classe de base j'ai appliqué deux types de wait (un implicite wait de 20s et un autre explicite avec 3s d'intervalle et 8s de timeOut) à l'initialisation du webdriver :

protected static WebDriverWait wait;

wait = new WebDriverWait(new SystemClock(), driver, TimeSpan.FromSeconds(15), TimeSpan.FromMilliseconds(3000));
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));


Je défini mon contrôle comme suit:

protected IWebElement btnFermer()
{
IWebElement field = wait.Until(ExpectedConditions.ElementExists(By.CssSelector("span.ui-icon.ui-icon-close")));
return field;
}

ou

protected IWebElement btnFermer()
{
IWebElement field = wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("span.ui-icon.ui-icon-close")));
return field;
}


Avec ces deux wait je suis obligée comme même de rajouter en dur des sleep (thread ) avant un assert ou après le click sur le bouton par exemple, mais ça ne marche pas mieux, c'est toujours au pif.

Merci d'avance pour votre aide,

I.