Voici ce que je voudrais faire via Sélénium WebDriver:C# Sélénium WebDriver attendre quelques éléments pour charger complètement avant d'aller sur
- Aller à https://www.for-sale.ie/adidas
- Cliquez sur un filtre
- Cliquez sur La première annonce après le filtrage est effectuée
Ce qu'il fait à la place est de cliquer sur la première annonce avant le filtrage (toute la page n'est pas rechargée pour le filtrage, juste la liste d'annonces)
var url = "https://www.for-sale.ie/adidas";
RemoteWebDriver _driver = new FirefoxDriver();
_driver.Manage().Window.Maximize();
_driver.Navigate().GoToUrl(url);
_driver.FindElement(By.CssSelector("#jsFilterItems_2 > ul > li:nth-child(2) > div > label > input")).Click();
System.Threading.Thread.Sleep(3000);
_driver.FindElement(By.CssSelector("article > .box_product_item.art-div > .listview > .middle > h2")).Click();
La seule façon que je trouve pour le rendre le travail est d'ajouter une Thread.Sleep
qui n'est pas la meilleure solution. J'ai aussi essayé de gérer les délais mais sans succès. Toute suggestion?
Vous devez utiliser ExpectedConditions pour attendre la mise à jour de la page - https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_ExpectedConditions.htm – Grasshopper
Excellent! Je vous remercie! Je vais vous expliquer ce que j'ai fait grâce à votre commentaire. – Gun