Saya memiliki daftar pilihan:
<select id="filter">
<option value="Open" selected="selected">Open</option>
<option value="Closed">Closed</option>
</select>
Saat saya memilih Closed
halaman dimuat ulang. Dalam hal ini menunjukkan tiket tertutup (bukannya dibuka). Ini berfungsi dengan baik ketika saya melakukannya secara manual.
Masalahnya adalah halaman tidak dimuat ulang saat saya memilih Closed
dengan Watir :
browser.select_list(:id => "filter").select "Closed"
Itu biasanya berarti bahwa beberapa peristiwa JavaScript tidak diaktifkan. Saya bisa menyalakan acara dengan Watir:
browser.select_list(:id => "filter").fire_event "onclick"
tapi saya perlu tahu acara mana yang harus diaktifkan.
Apakah ada cara untuk mengetahui kejadian mana yang didefinisikan untuk suatu elemen?
javascript
events
watir
dom-events
browser-automation
Željko Filipin
sumber
sumber
Jawaban:
Saya pikir saya akan menambahkan bahwa Anda juga dapat melakukan ini di Chrome:
Ctrl+ Shift+ I(Alat Pengembang)> Sumber> Titik Henti Pemroses Acara (di sebelah kanan).
Anda juga dapat melihat semua peristiwa yang telah dilampirkan cukup dengan mengklik kanan elemen, lalu menjelajahi propertinya (panel di sebelah kanan).
Sebagai contoh:
Tidak yakin apakah itu cukup sekuat opsi firebug, tetapi sudah cukup untuk sebagian besar barang saya.
Opsi lain yang sedikit berbeda tetapi sangat mengagumkan adalah Visual Event: http://www.sprymedia.co.uk/article/Visual+Event+2
Ini menyoroti semua elemen pada halaman yang telah terikat dan memiliki popovers yang menunjukkan fungsi yang dipanggil. Cukup bagus untuk bookmark! Ada juga plugin Chrome jika itu yang Anda sukai - tidak yakin tentang browser lain.
AnonymousAndrew juga telah menunjukkannya di sini
monitorEvents(window);
sumber
Scripts
di dalam alat Dev (atau inspektur), Anda harus masuk keSources
dan kemudian melihat menu di sebelah kanan.Sepertinya Firebug (add-on Firefox) punya jawabannya:
Log Events
Closed
(secara manual)akan ada yang seperti ini di tab Console:
Sumber: Tip Firebug: Mencatat Kejadian
sumber
Terkait Chrome, periksa monitorEvents () melalui API baris perintah.
monitorEvents(window);
Lihat konsol yang dibanjiri acara
Ada contoh lain di dokumentasi . Saya menduga fitur ini ditambahkan setelah jawaban sebelumnya.
sumber
monitorEvents($('#element').get())
unmonitorEvents(window)
Anda dapat menggunakan getEventListeners di konsol pengembang Google Chrome Anda .
sumber