2013-12-16 143 views
6

正在尋找一個Javascript,它可以通過鼠標左鍵單擊由ID或CLASS名稱標識的圖像/按鈕,等待x秒鐘並重復。並且能夠運行在開發人員工具Console控制檯中,在Chrome和Firefox中運行。在Javascript中模擬鼠標單擊

試圖自己寫,因爲我認爲這將是一個簡單的代碼,但經過2小時的試驗和錯誤沒有運氣,我開始用盡選項。

希望一個Javascript親那裏得到了及時幫助了非常初級用戶;)

感謝

+0

爲什麼不購買Ranorex或快速測試親 –

+1

不是一個新手問題! – scrblnrd3

+1

也許這可能有助於http://stackoverflow.com/questions/2490825/how-to-trigger-event-in-javascript – JCOC611

回答

2

如果你願意使用jQuery,你可以使用這個簡單的函數來做到這一點:

window.setInterval(function(){ 
    $("#divToClick").trigger("click"); 
}, 1000); 

,將調用它每1000毫秒,秒或1秒

對於純JavaScript的解決方案,你應該看一看How to trigger event in Javascript

,或者,如果你不感興趣,支持IE,你可以做的簡單的方法,用Event()構造函數,event.dispatch()

+0

。觸發器拯救了我的生命。 – FaceBro

2

這有什麼錯

document.getElementById(id).click() 
+2

這隻適用於輸入元素和鏈接 – scrblnrd3

+0

試試這個:http://jsfiddle.net/c7ghL/ –

2

你會使用event constructordispatchEvent爲:

var support = true; // check if event constructor is supported 

try { 
    if (new MouseEvent('click', {bubbles: false}).bubbles !== false) { 
     support = false; 
    } else if (new MouseEvent('click', {bubbles: true}).bubbles !== true) { 
     support = false; 
    } 
} catch (e) { 
    support = false; 
} 

setInterval(function() { 
    if (support) { 
     var event = new MouseEvent('click'); 
    }else{ 
     var event = document.createEvent('Event'); 
     event.initEvent('click', true, true); 
    } 
    elem.dispatchEvent(event); 
},1000); 

FIDDLE

+0

嘗試了你在小提琴上寫的Javascript代碼,但沒有點擊圖像並且沒有返回錯誤。只輸出44並點擊。 – zyl1647

+0

當然用實際ID替換測試。 – zyl1647

+0

@ zyl1647 - 這就是控制檯在重複記錄同一個值時所執行的操作,它只是在前端添加一個數字,記錄到控制檯的次數,試試看 - > http:// jsfiddle .net/hLnTy/4/ – adeneo