Saya memiliki hyperlink di halaman saya. Saya mencoba mengotomatiskan sejumlah klik pada hyperlink untuk tujuan pengujian. Apakah ada cara Anda dapat mensimulasikan 50 klik pada hyperlink menggunakan JavaScript?
<a href="#" target="_blank" onclick="javascript:Test("Test");">MSDN</a>
Saya mencari pemicu acara onClick dari JavaScript.
javascript
dom-events
pengguna171523
sumber
sumber
for(
.MEMPERBARUI
Ini adalah jawaban lama. Saat ini Anda hanya perlu menggunakan klik . Untuk penembakan acara yang lebih lanjut, gunakan dispatchEvent .
Jawaban Asli
Inilah yang saya gunakan: http://jsfiddle.net/mendesjuan/rHMCy/4/
Diperbarui untuk bekerja dengan IE9 +
Perhatikan bahwa panggilan
fireEvent(inputField, 'change');
tidak berarti itu benar-benar akan mengubah bidang input. Kasus penggunaan yang umum untuk memecat acara perubahan adalah ketika Anda menetapkan bidang secara terprogram dan Anda ingin penangan acara dipanggil karena panggilaninput.value="Something"
tidak akan memicu acara perubahan.sumber
jQuery
atau tidak). Saya dapat memberikan bantuan yang lebih bermakna jika Anda mengajukan pertanyaan baru dengan kode persis yang Anda coba tetapi tidak berfungsi.Apa
Apakah persis memanggil
onclick
fungsil
, yaitu, jika Anda telah menetapkan satul.onclick = myFunction;
. Jika Anda belum menyetell.onclick
, itu tidak melakukan apa-apa. Sebaliknya,mensimulasikan klik dan menembakkan semua penangan acara, apakah ditambahkan dengan
l.addEventHandler('click', myFunction);
, dalam HTML, atau dengan cara lain apa pun.sumber
window
objek, itu tidak akan secara ajaib mengeksposwindow.click
fungsi.Saya cukup malu bahwa ada banyak penerapan parsial yang salah atau tidak diungkapkan.
Cara termudah untuk melakukan ini adalah melalui Chrome atau Opera (contoh saya akan menggunakan Chrome) menggunakan Konsol. Masukkan kode berikut ke konsol (umumnya dalam 1 baris):
Ini akan menghasilkan hasil yang diperlukan
sumber
.click()
tidak bekerja dengan Android (lihat dokumen mozilla , di bagian seluler). Anda dapat memicu acara klik dengan metode ini:Dari pos ini
sumber
.click()
Tidak bekerja dengan Android" Sebenarnya, tabel terbaru mengatakan "Kompatibilitas tidak diketahui".Gunakan kerangka kerja pengujian
Ini mungkin membantu - http://seleniumhq.org/ - Selenium adalah sistem pengujian otomatis aplikasi web.
Anda dapat membuat tes menggunakan plugin Firefox Selenium IDE
Penembakan acara secara manual
Untuk mem-api acara secara manual dengan cara yang benar, Anda perlu menggunakan metode yang berbeda untuk browser yang berbeda - baik
el.dispatchEvent
atau diel.fireEvent
manael
akan menjadi elemen Anchor Anda. Saya percaya kedua hal ini akan membutuhkan pembangunan objek Acara untuk dilewati.Alternatifnya, tidak sepenuhnya benar, cara cepat dan kotor adalah sebagai berikut:
sumber
IE9 +
Contoh penggunaan:
Sumber: https://plainjs.com/javascript/events/trigger-an-event-11/
sumber
Peringatan yang adil:
element.onclick()
tidak berperilaku seperti yang diharapkan. Itu hanya menjalankan kode di dalamnyaonclick="" attribute
, tetapi tidak memicu perilaku default.Saya memiliki masalah serupa dengan tombol radio yang tidak disetel untuk diperiksa, meskipun
onclick
fungsi khusus berjalan dengan baik. Harus menambahkanradio.checked = "true";
untuk mengaturnya. Mungkin hal yang sama berlaku dan untuk elemen lain (setelaha.onclick()
itu harus ada jugawindow.location.href = "url";
)sumber
onclick()
berartievent
objek tidak akan secara otomatis ditentukan oleh browser, jadi metode umum sepertievent.stopPropagation()
juga akan tidak terdefinisi.sumber