ホームページ >ウェブフロントエンド >jsチュートリアル >PhantomJS を使用して要素 (スパンなど) のクリックをシミュレートするにはどうすればよいですか?

PhantomJS を使用して要素 (スパンなど) のクリックをシミュレートするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-07 15:10:16404ブラウズ

How to Simulate Clicks on Elements (e.g., Spans) Using PhantomJS?

PhantomJS: 要素のクリックのシミュレーション

コンテキスト:

を使用して要素をクリックしようとしたときPhantomJS の page.evaluate 関数では、未定義に関連するエラーが発生する可能性があります。関数として呼び出されます。これは、ターゲット要素がネイティブ入力ボタンではなくスパンである場合に発生します。

解決策:

この問題を解決し、任意の要素のクリックをシミュレートするには、次を利用します。次のカスタム関数:

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);
}

この関数は合成マウス クリック イベントを作成し、それを指定された要素に送出します。 page.evaluate と組み合わせて使用​​すると、クリック アクションを効果的にシミュレートできます。

page.evaluate(function() {
    click(document.getElementById('idButtonSpan'));  
});

追加メモ:

  • 要素がbe clicked は JavaScript 経由でアクセスでき、page.evaluate 関数の実行時に DOM 内にあります。
  • このアプローチでは、次のことが提供されます。ボタンとして機能するスパンなど、標準のクリック機能に応答しない可能性がある要素のクリックをシミュレートするための信頼できる方法。

以上がPhantomJS を使用して要素 (スパンなど) のクリックをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。