Python selenium, wie kann ich ein element löschen?
Ich versuche schon seit Stunden um ein element zu löschen, ohne Erfolg. Und das element kann nur erreicht werden über den Klassennamen an.
Ich habe versucht:
js = "var aa=document.getElementsByClassName('classname')[0];aa.parentNode.removeChild(aa)"
driver.execute_script(js)
Bekomme ich Fehler, dass parentNode " nicht definiert ist.
Also, was der beste Weg, um ein element zu löschen mit Selen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
getElementByClassName ist nicht eine Methode auf
document
. Sie wollen zu verwendenaber nur, wenn Sie sicher sind, dass es der einzige mit dieser Klasse.
[0]
?Ich weiß nichts von einem Selen-Methode, die speziell zum entfernen von Elementen. Jedoch, Sie können es tun mit:
find_element_by_class_name
wird eine Ausnahme ausgelöst, wenn das element nicht existiert. So dass Sie nicht haben, um zu testen, obelement
festgelegt ist auf einen sinnvollen Wert. Wenn die Methode gibt, dann ist es eingestellt. Dann übergeben Sie das element zurück zuexecute_script
. Die Argumente übergebenexecute_script
in Python angezeigt werden in JavaScript alsarguments
Objekt. (Es ist das gleiche wie diearguments
Objekt, das Sie normalerweise mit jeder beliebigen JavaScript-Funktion. Hinter den kulissen Selen wickelt den JavaScript-code in einer anonymen Funktion.)Oder Sie können die Lösung verwenden, die basiert auf JavaScript zu finden das element:
Diese Lösung ist viel besser wenn Sie geschehen, werden mit einem remote-server zum ausführen des Tests (wie Sauce Labs, oder BrowserStack). Es gibt eine nicht zu vernachlässigende Kosten für die Kommunikation zwischen dem Selen-client und dem server.