page.evaluate 関数と document.getElementById('idButtonSpan').click(); を使用して PhantomJS で要素をクリックしようとしたとき。を使用すると、要素が存在するにもかかわらず、「未定義は関数ではありません...」というエラーが発生する場合があります。これは、.click() が PhantomJS の要素をクリックするための標準関数ではないためです。
PhantomJS でクリック イベントをシミュレートするには、次のようにカスタム イベントを作成して送出する必要があります。
function click(el) { var ev = document.createEvent("MouseEvent"); ev.initMouseEvent( "click", true, // bubble true, // cancelable window, null, 0, // screenX 0, // screenY 0, // clientX 0, // clientY false, // ctrlKey false, // altKey false, // shiftKey false, // metaKey 0, // button null // relatedTarget ); el.dispatchEvent(ev); }
その後、このクリック関数を目的の要素で使用して、クリック イベントをシミュレートできます。
以上がPhantomJS でクリック イベントを適切にシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。