# Auslesen der aktuellen URL eines geöffneten Browser?



## hamsterriot (25. Aug 2008)

Hallo!

Gibt es eine Möglichkeit mit Java, die akutelle URL des aktiven Browsers auszulesen bzw. zu ermitteln?

Danke für die Hilfe!

Grüsse

Stefan


----------



## kleiner_held (25. Aug 2008)

Meinst du 
1. ein Java Applet welches in die aktuell geladene Website des Browsers eingebettet ist
_oder_
2. eine Java Anwendung die zur gleichen Zeit auf dem gleichen System laeuft wie der fragliche Browser
?


----------



## Guest (25. Aug 2008)

das 2te!

Danke!

Grüsse

Stefan


----------



## Wildcard (25. Aug 2008)

Gar nicht, wenn der betreffende Browser keine API bereitstellt um diese Information zu erfragen


----------



## tuxedo (25. Aug 2008)

Mit Java eigenen Mitteln: Nicht wirklich.

Geht wohl am besten via JNI und eine entsprechende C/C++ Implementierung.

Mit der Robot-Klasse kannst du aber auch einen Screenshot machen und da drin per Mustererkennung/Texterkennung/OCR die URL auslesen. Aber das ist dann wohl eher der "von hinten mit der Faust durch die Brust ins Auge" Lösung.

- Alex


----------



## SlaterB (25. Aug 2008)

@ bevor alex Posting:
oder man hat die Leitung zum Monitor angezapft und kann interpretieren, was auf dem Bildschirm zu sehen ist,
oder man verfolgt den Netzvekehr und weiß zumindest die zuletzt abgefragte URL,
zusätzlich Tastatur mitloggen versteht sich von selbst


----------



## Guest (25. Aug 2008)

danke für die Hinweise!

gibts für sowas eine C/C++ Lösung?

grüsse

Stefan


----------



## maki (25. Aug 2008)

> gibts für sowas eine C/C++ Lösung?


bestimmt


----------



## Wildcard (25. Aug 2008)

Die müsste dann auf den Browser zugeschnitten sein und ich wage zu bezweifeln das es mit den meisten browsern überhaupt funktioniert (es sei denn, man frag low-level den inhalt des URL Controls ab, was dann spätestens bei den reinen Java Browsern wieder scheitert).


----------



## tuxedo (25. Aug 2008)

@Threadersteller: Wofür brauchst du denn so ein Feature? Vielleicht gibts andere Wege ..

- Alex


----------



## hamsterriot (25. Aug 2008)

ich brauche die aktuelle URL dazu, um nachzusehen, ob für jene Seite schon Daten in meiner Datenbank gespeichert sind.


----------



## Natorion (25. Aug 2008)

Möglich ist es sicher auch ohne APIs, sonst würden professionelle Test-Tools das ganze nicht automatisieren können (ja, ohne was am Source-Code des Zu-Testenden-Programms zu ändern). Das ganze hat dann aber nichts mit Java zu tun, außer die zu untersuchende Anwendung ist eine Java-Anwendung .... grundsätzlich kann aber gesagt werden: DAS geht nicht so einfach


----------



## HerrBert (26. Aug 2008)

Brauchst Du die URL immer wenn eine neue URL angegeben wurde oder im Browser was geändert wurde? (Weil wie schon gesagt wurde, dass muss dir dann der Browser mitteilen können per API, oder per JNI Fenster auslesen).

Wenn der Benutzer entscheiden kann wann die URL gebraucht wird, kann man auch den Umweg über die Zwischenablage gehn. Hab ich mal gemacht, einfach im Javaprogramm das von mir aus im Hintergrund läuft einen Thread laufen lassen der die Zwischenablage ausliest und wenn dann z.B der Inhalt mit http:// beginnt könnte das ne URL sein. Problem, wenn das nicht so gewollt ist, ist, dass der User den Link in die Zwischenablage kopieren muss wenn dein Programm etwas damit machen soll.

Mfg


----------



## tuxedo (26. Aug 2008)

Natorion hat gesagt.:
			
		

> Möglich ist es sicher auch ohne APIs, sonst würden professionelle Test-Tools das ganze nicht automatisieren können (ja, ohne was am Source-Code des Zu-Testenden-Programms zu ändern). Das ganze hat dann aber nichts mit Java zu tun, außer die zu untersuchende Anwendung ist eine Java-Anwendung .... grundsätzlich kann aber gesagt werden: DAS geht nicht so einfach



Diese Tools machen das über Window-Handles und hangeln sich durch die einzelnen Fensterelemente durch. Ist recht aufwendig. Wer aber mal Spy++ benutzt hat und versucht hat an das Adressefeld im FF zu kommen: Das scheint nicht so einfach zu sein. Im IE hat das Adressfeld hingegen ein eigenes Handle (zumindest lauf Spy++).

- Alex


----------



## kleiner_held (26. Aug 2008)

Eine saubere Loesung waehre z.B.: das Java Programm als lokalen HTTP-Proxy zu implementieren und dann im Browser entsprechend zu konfigurieren, das ganze waere dann sogar noch plattformunabhaengig.


----------



## tuxedo (26. Aug 2008)

DAS wäre in der Tat eine super Idee ...


----------



## hamsterriot (26. Aug 2008)

danke, auf die Idee wäre ich ja noch nie gekommen!

leider habe ich sowas noch nie programmiert und wäre für jede Hilfe dankbar!

Grüsse

Stefan


----------



## kleiner_held (26. Aug 2008)

Apache HttpComponents laesst sich da sicherlich gut verwenden. Ansonsten kann man auch nach Java+HTTP+Proxy auf Sourceforge.net suchen. Es gibt da sicherlich passende Projekte, Proxies werden ja oft zum Filtering/Caching eingesetzte.


----------

