Lorsque nous utilisons le sélénium pour simuler la connexion, après avoir obtenu l'élément de bouton de connexion, nous pouvons appeler directement sa méthode click () pour réaliser un saut de connexion, et le webdriver à ce moment pointe également vers
C'est très bien pour la page actuelle, mais il convient de noter que, car la vitesse de chargement de la page est généralement inférieure à la vitesse d'exécution du programme, avant d'obtenir les éléments de la page après la connexion, vous pouvez utiliser la méthode UTIL de WebDriverWait, ou vous pouvez directement utiliser Thread.Sleep () pour laisser le programme dormir pendant un certain temps (non recommandé).
Mais le point principal du blog est que si nous entrons la nouvelle page en cliquant sur l'hyperlien normal, nous ne pouvons pas obtenir le nouvel élément de page via la méthode ci-dessus, car le webdriver à ce moment pointe toujours vers la page précédente.
Solution: Tout d'abord, obtenez toutes les poignées de la fenêtre, puis parcourez cette collection de poignée jusqu'à ce que la poignée existe est différente de la poignée de la fenêtre actuelle (actuel Handle), et transférez le webdriver précédent vers la page indiquée par la nouvelle poignée.
Le code est le suivant:
String currentWindow = driver.getWindowHandle (); // Obtenez la poignée de la fenêtre actuelle set <string> handles = driver.getWindowHandles (); // obtient les poignées de tous les Windows Iterator <string> it = handles.iterator (); WebDriver newdriver = null; while (it.hasnext ()) {string handle = it.next (); if (! handle.equals (currentwindow)) {driver = driver.switchto (). Window (manche); // Passez à la rupture de fenêtre pointée par la nouvelle poignée; }}La solution à l'échec de l'obtention de nouveaux éléments de page basée sur le sélénium est l'ensemble du contenu partagé par l'éditeur. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.