PhantomJS: Elementklicks simulieren
Kontext:
Beim Versuch, mit auf ein Element zu klicken Wenn Sie die Funktion „page.evaluate“ von PhantomJS verwenden, tritt möglicherweise ein Fehler auf, der damit zusammenhängt, dass „undefiniert“ als Funktion aufgerufen wird. Dies tritt auf, wenn das Zielelement ein Bereich und keine native Eingabeschaltfläche ist.
Lösung:
Um dieses Problem zu beheben und einen Klick auf ein beliebiges Element zu simulieren, verwenden Sie die folgende benutzerdefinierte Funktion:
function click(el){ var ev = document.createEvent("MouseEvent"); ev.initMouseEvent( "click", true /* bubble */, true /* cancelable */, window, null, 0, 0, 0, 0, /* coordinates */ false, false, false, false, /* modifier keys */ 0 /*left*/, null ); el.dispatchEvent(ev); }
Diese Funktion erstellt ein synthetisches Mausklickereignis und sendet es an das angegebene Element. Durch die Verwendung in Verbindung mit page.evaluate können Sie die Klickaktion effektiv simulieren:
page.evaluate(function() { click(document.getElementById('idButtonSpan')); });
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie simuliere ich Klicks auf Elemente (z. B. Spans) mit PhantomJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!