Ich versuche zu prüfen, ob ein Element existiert, bevor ich diese Zeile ausführen kann:
driver.findElement(webdriver.By.id('test'));
Dies führt zu einem Fehler "kein solches Element", wenn die ID test
nicht im Dokument vorhanden ist, auch nicht in einem try
-Block.
Ich habe Antworten für Java gefunden, wo Sie überprüfen können, ob die Größe 0 ist, aber in Node-Js löst dies einen Fehler aus, bevor ich die Größe überprüfen kann.
throw error;
^
NoSuchElementError: no such element
Warum nicht einfach die Methode isElementPresent (locatorOrElement) verwenden? Hier ist ein Link zum Code:
Die ausgewählte Antwort funktionierte nicht wie erwartet ( err.state
war undefined
und NoSuchElementError
wurde immer geworfen) - obwohl das Konzept der Verwendung der optionalen Callbacks immer noch funktioniert.
Da ich den gleichen Fehler bekommen habe, wie das OP referenziert, glaube ich, NoSuchElementError
sollte referenziert werden, wenn festgestellt wird, ob das Zielelement existiert oder nicht. Wie es der Name impliziert, ist der Fehler, der ausgelöst wird, wenn ein Element nicht existiert. Die Bedingung im errorCallback sollte also lauten:
err instanceof webdriver.error.NoSuchElementError
Also wäre der komplette Codeblock wie folgt (Ich verwende auch async
/ await
für diejenigen, die diese Syntax ausnutzen):
Klingt so, als ob Sie zunächst prüfen möchten, ob Ihre Eigenschaften existieren:
%Vor%Tags und Links javascript node.js selenium