Dans Selenium, vérifier si une page Web est complètement chargée est une exigence courante. Lors de la mise en œuvre de cette fonctionnalité, les utilisateurs rencontrent souvent des problèmes avec les solutions existantes.
Disponibilité des fonctions génériques
Malheureusement, il n'existe pas de fonction générique dans Selenium qui vérifie directement si une page a complètement chargé.
Stratégie de chargement de page et JavaScript Exécution
Dans votre tentative de code, vous avez utilisé l'évaluation pageLoadTimeout et document.readyState. Cependant, la stratégie de chargement de page contrôle le moment où Selenium considère qu'une page est entièrement chargée, elle ne garantit pas que tous les éléments sont présents. Attendre que document.readyState soit « complet » indique uniquement que la structure HTML est disponible.
En attente du chargement complet de la page
Une approche plus complète est nécessaire pour garantir tous les éléments de la page sont visibles et chargés.
Stratégie de chargement de page
Définition de la page Charger la stratégie sur « normal » à l'aide de DesiredCapabilities ou de ChromeOptions aide à capturer lorsque document.readyState est « complet ». Cependant, cela ne garantit toujours pas que toutes les ressources sont chargées.
Élément dynamique en attente
Pour les pages dynamiques avec des appels JavaScript et Ajax, vous pouvez utiliser la fonction suivante pour attendre la fin :
public void WaitForAjax2Complete() throws InterruptedException { while (true) { if ((Boolean) ((JavascriptExecutor)driver).executeScript("return jQuery.active == 0")) { break; } Thread.sleep(100); } }
Attendu Conditions
L'utilisation de WebDriverWait avec des conditions attendues telles que titleContains() ou visibleOfElementLocated() peut garantir que le titre de la page est visible ou qu'un élément spécifique est accessible, respectivement.
new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("partial_title_of_application_under_test"));
Conclusion
Vérifier si une page Web est entièrement chargée dans Selenium nécessite des approches à multiples facettes, notamment la stratégie de chargement de page, l'attente de contenu dynamique et la vérification d'éléments spécifiques, sont disponibles. Considérez les exemples et les références fournis pour améliorer vos propres implémentations.
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!