PhantomJS ではダブルクリックも可能です。
おすすめされた
これは、stovrozの回答から適応され、 、およびイベント (それぞれ 2 つ)を含むネイティブをトリガーします。dblclick
mousedown
mouseup
click
var rect = page.evaluate(function(selector){
return document.querySelector(selector).getBoundingClientRect();
}, selector);
page.sendEvent('doubleclick', rect.left + rect.width / 2, rect.top + rect.height / 2);
他の方法
次の 2 つの方法は、dblclick
イベントをトリガーするだけで、その前にある他のイベントはトリガーしません。
虎三郎のこの回答から適応:
page.evaluate(function(selector){
var el = document.querySelector(sel);
var ev = document.createEvent("MouseEvent");
ev.initMouseEvent(
'dblclick',
true /* bubble */, true /* cancelable */,
window, null,
0, 0, 0, 0, /* coordinates */
false, false, false, false, /* modifier keys */
0 /*left*/, null
);
el.dispatchEvent(ev);
}, selector);
Jobins Johnのこの回答から適応:
page.evaluate(function(selector){
var el = document.querySelector(sel);
var e = document.createEvent('MouseEvents');
e.initMouseEvent('dblclick', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
el.dispatchEvent(e);
}, selector);
完全なテスト スクリプト