J'ai écrit un script en python en utilisant sélenium pour obtenir des informations spécifiques à partir d'une page web. Comme la page Web est confidentielle, je ne peux pas révéler l'adresse du site. Quoi qu'il en soit, je m'attendais à ce que mon grattoir existant cliquera sur chaque lien sur 20 liens d'une page Web et atteindra la page désirée il recueillera l'information et reviendra à la page précédente et répète la même chose jusqu'à ce que tous les 20 liens soient épuisés. Cependant, le grattoir clique sur un lien, va à la page désirée analyser l'information mais au lieu de revenir à la page principale pour répéter l'opération, il casse. Il semble que quelque chose ne va pas avec mon processus de bouclage. Voici quelques lignes de mon script qui peuvent vous donner une idée de me fournir une solution de contournement.Comment empêcher mon script de se casser après la première boucle?
for link in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".section-result"))): ##Supposed to loop through all the links
link.click() ##clicking each link
name = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".section-info-text")))[2] ##this is where the document i want to parse from. The browser gets here when a click is executed
print(name.text) #after parsing the docs the code breaks instead of getting back to main page
Veuillez faire défiler vers la droite pour voir la description minimale attachée à chaque ligne. Merci.
C'est l'erreur que je vais avoir:
line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
Merci de jGraves votre réponse. Avant de poster ma question j'ai essayé avec driver.back() 'cette commande dans la position appropriée mais pas de chance. Toujours le même. – SIM
@Topto: Vous devez retrouver les éléments lorsque vous êtes de retour sur la page après l'exécution de driver.back() '. Vous pouvez regarder ma dernière réponse pour référence à https://stackoverflow.com/a/46707691/975114 – Amit
Merci Amit. Je suppose que cet indice pourrait faire l'affaire. Je vous le ferai savoir. – SIM