サイトのWebオートメーションを作成しようとしています。私はクリックをシミュレートしています。通常は、以下のような要素にIDを追加して、Chromeデベロッパーコンソールを使用してクリックをトリガーすると、常に動作します。JavaScript - コンテキストメニューをクリックしてシミュレートする
PS:質問の下にoutdated.Iが実際にweb.whatsapp.com
<div id="myapp">button1</div>
<script>
$("#myapp").click();
</script>
それとも、それが動作しない場合は、私が使用してmousedown
イベントを使用して、コンテキストメニューから項目をクリックしようとしていますされます以下のような純粋なJavaScriptであり、スムーズに動作します。
function triggerMouseEvent(node, eventType) {
var clickEvent = document.createEvent('MouseEvents');
clickEvent.initEvent(eventType, true, true);
node.dispatchEvent(clickEvent);
}
var targetNode = document.querySelector("#myapp");
triggerMouseEvent(targetNode, "mousedown");
今、私の質問は:これはjQueryのプラグインcontextMenuを介して生成されたメニューのために働いていません。
contextMenu hereのデモを見ることができます。デベロッパーコンソールから上記のテストを行っています。あなたは右のコンテキストメニューをクリックしたとき
は、手動でのメニューの一つに、コードの下に、それはまた、デベロッパーコンソールを経由して、正しい要素を選んでいるとID #myapp
追加ul
とli
tags.Iに記載されているメニュー項目のリストがあります。
var targetNode = document.querySelector("#myapp");
targetNode;
ただし、コンテキストメニューから生成されたメニュー項目をクリックすることはできません。私は24時間以上それと苦労していた。私はmouseup
,mousedown
、mouseenter
のような、私が考えることができるJavaScriptのすべてのイベントを試しました。
おかげで解決策はありますが、実際にテストしている場所ではうまくいきません...実際にはweb.whatsapp.com ..右クリックすればこのコンテキストメニューが表示されます。私はそれのサンプルHTMLコードをここに入れましたhttps://jsfiddle.net/adjmpw/ympnzb1c/4/ ..それはそこで動作します。 web.whatsapp.comでは機能しません。親が絶対配置されているかもしれませんか? 。私が助けてください、私はあなたがほしい賞金をどれくらい与えるのですか – Vishnu
こんにちは、本当にありがとう、ありがとう、私は実際にmouseoverイベントを使用してコンテキストメニューをトリガーし、.icon-downをクリックすることができますが、ミュートボタンをクリックすることはできません私はなぜ知っているのですか?信頼されています。私はセレンを使用する予定です。セレンは、isTrustedがあってもそれらのボタンをクリックできますか?このアクションとアクションが可能なセレンのための良いjavascriptラッパーを教えてください。 – Vishnu
あなたは大歓迎です!はい、それはSeleniumで動作します。なぜなら、クリックやマウスの動きをより低いレベルでシミュレートするからです。私は個人的にJSラッパーの経験はありませんが、WebdriverIOを試してみると、私の答えでリンクしました。 –