2017-04-20 7 views
0

ich zur Zeit zu überprüfen, ich versuche, dass das Element im DOM nicht vorhanden ist:Selen Python das Element bestätigen nicht vorhanden ist

ich diese Funktion geschrieben haben:

def verifyElementNotFound(self, xpath): 
    element = self.driver.find_element_by_xpath(xpath) 
    if element.is_displayed(): 
     raise Exception("Element should not be found") 
    else: 
     pass 

Das Element nicht in ist der dom aber es mir diesen Fehler geben:

raise exception_class(message, screen, stacktrace) 
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//td[.="DO NOT DELETE: Regression Test script 2"]"} 

oder kann ich dieses intead verwende, ist dies eine robuste Art und Weise, es zu tun?

try: 
    element = self.driver.find_element_by_xpath(xpath) 
    if element.is_displayed(): 
     raise Exception("Element should not be found") 
except: 
    pass 
+0

Ich bin ein wenig verwirrt von dem, was Sie hier suchen, könnten Sie es besser beschreiben. Was ist der Fehler, den Sie erhalten? – Tyrell

+0

@Kiffy, der Fehler ist in der Hauptfrage. – user7242550

Antwort

2

versuchen Sie dies nicht sicher, wenn dies das ist, was Sie wollen.

element = driver.find_elements_by_xpath(xpath) 

if len(element): 
    print("element is present") 
elif: 
    print("element is not present") 

lassen Sie mich bitte wissen, wenn dies für Sie ausgearbeitet hat.

2

Da das Element nicht auf dem DOM ist, die Linie

element = self.driver.find_element_by_xpath(xpath) 

NoSuchElementException werfen, weil die WebDriver konnte nicht einmal das Element finden. Diese Zeile in einem try-catch-Block funktioniert auch (wie Ihr zweiter Code) oder Sie können auch @ Kliffys Ansatz verwenden find_elements_by_xpath, der automatisch jede Ausnahme behandelt & gibt eine leere Liste zurück, wenn Element nicht gefunden wird, sonst alle zurückgibt übereinstimmende Elemente in einer Liste. Sie müssen also nur prüfen, ob die Länge der von find_elements_by_xpath zurückgegebenen Liste gleich 0 ist, um zu bestätigen, dass das Element nicht vorhanden ist.

Verwandte Themen