2

Ich benutze derzeit Selenium auf Python und habe eine Frage dazu. mit zurück() in diesem Code könnte Selen keine Elemente mehr finden, obwohl ich brauche es nochPython Selen halten Elemente nach geändertem Browser

elements = driver.find_elements_by_css_selector("div.classname a") 
for element in elements: 
    element.click() 
    driver.back() 

Da zurück zur vorherigen Seite kommen.

Wenn jemand eine Ahnung hat, bitte helfen Sie mir aus.

Viele schätzen im Voraus

Antwort

1

Sie können die Elemente in einer Liste speichern und sie mit einer Schleife bearbeiten. Zum Beispiel:

elementList = driver.find_elements_by_css_selector("div.classname a") 
for i in range(len(elementList)): 
    element = driver.find_elements_by_css_selector("div.classname a")[i] 
    element.click() 
    driver.back() 
1

Selen eine ganz neue Reihe von Objekten erstellt, wenn Sie Seiten ändern - egal ob Sie auf einen Link klicken oder eine Seite zurück. Wenn Selenium durch Klicken auf das Element in Zeile 3 eine neue Seite lädt, erhalten Sie beim zweiten Elementtest eine StaleElementException. Was Sie also tun müssen, ist jedes Mal, wenn Sie driver.back() ausführen, müssen Sie wie in der ersten Zeile nach den Elementobjekten auf der Seite suchen und wahrscheinlich mindestens einen Zähler darüber haben, wie weit die Liste runter ist von Elementen, auf die Sie bereits geklickt haben (vorausgesetzt, sie navigieren von der Seite weg). Sinn ergeben?

+0

Vielen Dank für Ihre freundliche Antwort. Ich bin nicht sicher, verstanden, was Sie genau gemeint haben, empfehlen Sie mir, die Links zu speichern, danach navigieren Sie mit einer Funktion wie driver.get (URL). Habe ich gut verstanden? Aber in meinem Experiment brauche "die Aktion, um den Link zu klicken", nicht nur driver.get (URL) so etwas. – Joon

Verwandte Themen