Heim > Web-Frontend > js-Tutorial > Warum schlägt „.click()' in PhantomJS fehl und wie kann ich richtig auf Elemente klicken?

Warum schlägt „.click()' in PhantomJS fehl und wie kann ich richtig auf Elemente klicken?

Linda Hamilton
Freigeben: 2024-12-30 16:43:21
Original
232 Leute haben es durchsucht

Why Does `.click()` Fail in PhantomJS and How Can I Properly Click Elements?

Probleme beim Klicken auf ein Element in PhantomJS

Versuche, mit .click() auf ein Element zu klicken, schlagen in PhantomJS häufig fehl, was zu Fehlern wie „undefiniert ist keine Funktion“ führt. ..". Dieses Problem tritt auf, weil .click() nicht Teil der Standard-DOM-Spezifikation ist.

Um erfolgreich auf ein Element zu klicken, muss ein Ereignis wie folgt erstellt und ausgelöst werden:

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);
}
Nach dem Login kopieren

Anschließend können Sie diese Funktion verwenden, um auf das gewünschte Span-Element zu klicken, indem Sie es als Argument übergeben:

click(document.getElementById('idButtonSpan'));
Nach dem Login kopieren

Dieser Ansatz simuliert ein Mausklickereignis, sodass Sie sogar erfolgreich auf Elemente klicken können Wenn sie nicht über eine integrierte Klickfunktion verfügen, beheben Sie die Einschränkungen, mit denen Casper in diesem speziellen Szenario konfrontiert ist.

Das obige ist der detaillierte Inhalt vonWarum schlägt „.click()' in PhantomJS fehl und wie kann ich richtig auf Elemente klicken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage