Hey! Der letzte Eintrag ist schon eine Weile her.
Kürzlich habe ich mich mit einem Problem beschäftigt, das mit dem Verlust von Elementverweisen innerhalb einer Schleife zusammenhängt, und habe endlich eine Lösung gefunden, die ich gerne mit Ihnen allen teilen möchte.
Hier ist eine vereinfachte Version des ursprünglichen Codes:
const someElements = await page.$$("xpath/ .//foo[@name='hoge']"); for (let i=0; iWelcher Fehler ist mir aufgefallen?
Nach der forst-Schleifeniteration konnte das Skript die Schaltflächenelemente nicht finden. Ich habe immer wieder folgende Fehlermeldung erhalten:
kann nicht gefunden werden.
ProtocolError: Protokollfehler (DOM.describeNode): Der Kontext mit der angegebenen ID unterWie ich es gelöst habe
Ich habe dieses Problem gelöst, indem ich die Liste der Schaltflächenelemente innerhalb der Schleife neu deklariert habe.
Hier ist der geänderte Code:
const someElements1 = await page.$$("xpath/ .//foo[@name='hoge']"); for (let i=0; iIch habe eine Neudeklarationszeile hinzugefügt, weil ich davon ausgegangen bin, dass die ursprüngliche someElements-Referenz verloren geht, wenn man von der Startseite weg navigiert. Nach dieser Änderung wurde der Fehler behoben. Ich bin mir jedoch nicht sicher, ob dieser Ansatz strikt den besten Codierungspraktiken entspricht.
Wenn Sie beim Navigieren zwischen Seiten in einer Schleife auf ein Problem mit .click() stoßen, sollten Sie erwägen, das Element innerhalb der Schleife selbst neu zu deklarieren. Diese einfache Änderung kann Ihnen viel Zeit bei der Fehlerbehebung ersparen!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3