Ich habe eine Auswahlliste:
<select id="filter">
<option value="Open" selected="selected">Open</option>
<option value="Closed">Closed</option>
</select>
Wenn ich Closed
die Seite neu lade. In diesem Fall werden geschlossene Tickets angezeigt (anstatt geöffnet). Es funktioniert gut, wenn ich es manuell mache.
Das Problem ist, dass die Seite nicht neu geladen wird, wenn ich Closed
mit Watir auswähle :
browser.select_list(:id => "filter").select "Closed"
Das bedeutet normalerweise, dass ein JavaScript-Ereignis nicht ausgelöst wird. Ich kann Ereignisse mit Watir abfeuern:
browser.select_list(:id => "filter").fire_event "onclick"
aber ich muss wissen, welches Ereignis ausgelöst werden soll.
Gibt es eine Möglichkeit herauszufinden, welche Ereignisse für ein Element definiert sind?
javascript
events
watir
dom-events
browser-automation
Željko Filipin
quelle
quelle
Antworten:
Ich dachte nur, ich würde hinzufügen, dass Sie dies auch in Chrome tun können:
Ctrl+ Shift+ I(Entwicklertools)> Quellen> Ereignis-Listener-Haltepunkte (rechts).
Sie können auch alle Ereignisse anzeigen, die bereits angehängt wurden, indem Sie einfach mit der rechten Maustaste auf das Element klicken und dann dessen Eigenschaften durchsuchen (das Bedienfeld rechts).
Beispielsweise:
Ich bin mir nicht sicher, ob es so mächtig ist wie die Firebug-Option, aber es hat für die meisten meiner Sachen gereicht.
Eine andere Option, die etwas anders, aber überraschend großartig ist, ist Visual Event: http://www.sprymedia.co.uk/article/Visual+Event+2
Es hebt alle Elemente auf einer Seite hervor, die gebunden wurden, und enthält Popover mit den aufgerufenen Funktionen. Ziemlich geschickt für ein Lesezeichen! Es gibt auch ein Chrome-Plugin, wenn das mehr dein Ding ist - nicht sicher über andere Browser.
AnonymousAndrew hat auch darauf hingewiesen , hier
monitorEvents(window);
quelle
Scripts
in den Entwicklungswerkzeugen (oder im Inspektor), Sie müssen inSources
das Menü auf der rechten Seite gehen und es dann ansehen.Es sieht so aus, als hätte Firebug (Firefox-Add-on) die Antwort:
Log Events
Closed
(manuell)Auf der Registerkarte "Konsole" wird Folgendes angezeigt:
Quelle: Firebug Tipp: Ereignisse protokollieren
quelle
Überprüfen Sie in Bezug auf Chrome die monitorEvents () über die Befehlszeilen-API.
monitorEvents(window);
Zeigen Sie die mit Ereignissen überflutete Konsole an
Es gibt andere Beispiele in der Dokumentation . Ich vermute, diese Funktion wurde nach der vorherigen Antwort hinzugefügt.
quelle
monitorEvents($('#element').get())
unmonitorEvents(window)
Sie können getEventListeners in Ihrer Google Chrome-Entwicklerkonsole verwenden .
quelle