Maison >Java >javaDidacticiel >Comment déterminer de manière fiable la fin du chargement d'une page Web dans Selenium ?
Comment déterminer la fin du chargement d'une page dans Selenium
Selenium propose diverses approches pour vérifier si une page Web est complètement chargée, notamment :
Paramètre du délai d'expiration du chargement de la page
Utilisation du pageLoadTimeout(), Selenium attend que le chargement de la page soit terminé dans un délai d'attente spécifié. Cependant, cette méthode peut ne pas être fiable dans tous les cas.
Définir la stratégie de chargement de page sur Normal
Vous pouvez définir pageLoadStrategy sur normal à l'aide de la classe DesiredCapabilities ou ChromeOptions. Cela garantit que le navigateur attend que document.readyState devienne « complet » avant d'exécuter la ligne de code suivante.
En attente des appels JavaScript et Ajax
Pour attendre pour que tous les appels JavaScript et Ajax soient terminés, vous pouvez utiliser une fonction personnalisée qui vérifie le jQuery.active property :
public void waitForAjax2Complete() throws InterruptedException { while (true) { if ((Boolean) ((JavascriptExecutor)driver).executeScript("return jQuery.active == 0")){ break; } Thread.sleep(100); } }
Utilisation des ExpectedConditions
Vous pouvez utiliser la classe ExpectedConditions pour attendre que des conditions spécifiques soient remplies avant de continuer, comme le titre de la page contenant un certain string:
new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("partial_title_of_application_under_test"));
Ou visibilité d'un particulier element :
WebElement ele = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_of_the_desired_element")));
Conclusion
Bien qu'il n'existe pas de fonction générique dans Selenium pour vérifier si une page est complètement chargée, les approches décrites ci-dessus apportent des solutions efficaces pour différents cas d'utilisation. En considérant la stratégie de chargement des pages, en attendant les appels JavaScript et Ajax ou en utilisant ExpectedConditions, vous pouvez vous assurer que vos tests attendent les conditions appropriées avant de continuer.
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!