2013-05-25 11 views
5

Ich versuche, ein grundlegendes Aufnahmewerkzeug mit Selenium2/Webdriver zu erstellen und ich bin mir bewusst, dass Selenium bereits eine IDE bietet, aber ich möchte eine allgemeinere erstellen.Selen: Webdriver: Gibt es einen Listener, um Benutzeraktionen in der von WebDriver gestarteten Browsersitzung zu erfassen?

Genauer gesagt, sobald ich den Browser mit WebDiver-API in Java starte, möchte ich einen Listener mit der aktuellen Sitzung registrieren, so dass ich Benutzerinteraktion mit dem gestarteten WebDriver-Browser erfassen kann. Wenn ich Benutzerinteraktionen in Java schreiben möchte, wie kann ich das machen? Sehr ähnlich der EventFiringWebDriver-Klasse, aber diese Klasse benachrichtigt den Listener, wenn der Treiber den Befehl und nicht die Borwser-Sitzung einleitet.

Zum Beispiel sagen, dass ich einen Browser mit den folgenden Befehlen starten:

WebDriver Treiber = new FirefoxDriver();

Jetzt ist ein leerer Firefox Browser geöffnet, der WebDriver auf der Unterseite in roter Farbe sagt. Nun nehme ich an, dass ich www.google.com in diesen Browser tippe und drücke Enter. Der Browser navigiert mich zu google.com. Kann ich einen Listener registrieren, der mich über Ereignisse benachrichtigt, die in dieser Browsersitzung auftreten?

Ich schätze Ihre Hilfe.

+0

Irgendwelche Zeiger, irgendjemand? Bitte helfen Sie. – Rex

Antwort

2

Ich bin nicht vertraut mit den Zuhörern. Ich weiß, dass Leute dazu neigten, etwas wie als Man-in-the-Middle zu verwenden, um HTTP-Aktionen zu erfassen und wiederzugeben. Da WebDriver mit dem JSON Wire Protocol ausgeführt wird, könnte dies für das, wonach Sie suchen, besser geeignet sein.

Auch Simon Stewart (der Schöpfer von WebDriver) hat einen ausführlichen Bericht über die Philosophien und Architektur des Selenium WebDriver-Projekts. Sie können das here sehen.

Cheers, Dave H

+0

Vielen Dank für die präzise Antwort. Es ist genau das, wonach ich suche. Haben Sie nicht genug Reputation, um für Ihre Antwort zu stimmen :) – Rex

+1

Auch ein Link zu Google Group Post und weitere detaillierte Beschreibung des Problems. https://groups.google.com/forum/?fromgroups=#!topic/selenium-users/29GyTVvayCE – Rex

+1

Das ist großartig zu hören! Froh, dass ich hilfsbereit war und danke für die Requisiten. –

1

Es ist in der Tat ein WebDriverEventListener .Siehe der Link doc. Prost.

+0

Danke für die Antwort. Dieser Hörer arbeitet jedoch den umgekehrten Weg. Das heißt, wenn der Web-Treiber einen Klick macht, erfasst er das Ereignis nicht umgekehrt.Ich möchte die im Browser vorkommenden Ereignisse wie Klick, Drag-and-Drop, Senden von Schlüsseln etc. im Java-Code erfassen. Ähnlich wie bei Selenium IDE, aber programmatisch. – Rex