• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Website steuern mit AppleScript

Waldgeist

Tokyo Rose
Registriert
13.10.06
Beiträge
69
Hallo,

ich versuche mir gerade einen kleinen Bot mit Applescript zu schreiben, der spezielle Seiten für mich durchforstet und ein paar Sachen erledigt.
Da ich selber Websites entwickle, könnte ich diesen Super zum testen gebrauchen.
Außerdem interessiert mich, wie das ganze funktioniert.

Ich habe mich also ein bisschen eingelesen in Applescript.

Das größte Problem was sich mir jedoch stellt, nirgends finde ich eine Funktionsübersicht. Also teste ich ein paar Sachen aus, die in irgend welchen Scipts stehen. Meistens kriege ich allerdings eine Fehlermeldung.

tell application "Opera"
GetURL "http://domain.de"
...
end tell

Gut dieser Anfang hier funktioniert ja auch wunderbar.
Doch da hört es schon auf.
Ich habe ein paar weiterhin ein paar vielversprechende Sachen gefunden, die leider aber immer mit einem Fehler enden:

1. click button "Weiter" <- Fehler
2. do JavaScript "document.forms[0].formName.value = '3'" in document 1 <- Fehler, an sich funktioniert das JavaScipt nicht über AppleScript. Zumindest kriege ich es nicht hin.
3. keystroke tab <- Fehler

Damit würde ich schonmal ein gutes Stück weiterkommen, also wenn diese drei Sachen laufen würden.

Das ganze versuche ich momentan im Opera, wenn sich da niemand mit auskennt, teste ich das gerne auch im Safari.

Vielen Dank für jegliche Hilfe.

Grüße Jonas

PS: Ich habe die Suche genutzt. Und das nicht nur einmal. Und google habe ich auch gequält.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Erklär doch mal, was Du mit den Seiten anstellen willst. Ich versteh' bis jetzt nur Bahnhof.
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
So wie es aussieht soll es Formulare ausfüllen...?! :)
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
24.02.07
Beiträge
253
1. click button "Weiter" <- Fehler
2. do JavaScript "document.forms[0].formName.value = '3'" in document 1 <- Fehler, an sich funktioniert das JavaScipt nicht über AppleScript. Zumindest kriege ich es nicht hin.
3. keystroke tab <- Fehler

Also 1. und 3. sind Scriptfetzen, die du an die SystemEvents senden musst, wobei 1. nur funktioniert, wenn du gezielt UI-Elemente ansprichtst. Da eine "Weiter"-Button auf einer Website aber kein klassisches UI-Element ist, kannst Du das vergessen.

3. muss dann also lauten: tell application "System Events" to keystroke tab

zu 2.: da bin ich mir nicht sicher, ob's in Opera überhaupt funktioniert. Nimm mal Safari und teste es dort.
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
Deine Aussagen sind zu allgemein, um dir irgendwelche handfesten Ratschläge zu geben.
Mit javascript kenne ich mich gar nicht aus, aber mit den schon erwähnten "keystroke" kommt man auch oft ganz gut weiter.

Falls Du hier automatisch angemeldet bist (also nicht erst einloggen musst), kannst Du ja mal dieses Script ausführen… da sind schon mal die wichtigsten Variablen enthalten. (Ist aber für Safari)

Code:
tell application "Safari"
	open location "http://www.apfeltalk.de/forum/website-steuern-applescript-t80362.html"
	delay 2
	
	tell application "System Events"
		tell process "Safari"
			set frontmost to true
			keystroke tab using shift down
			delay 1
			keystroke tab using shift down
			delay 1
			keystroke tab using shift down
			delay 1
			
			keystroke "Funktioniert tatsaechlich :)"
			delay 1
			keystroke tab
			delay 1
			keystroke space
			
		end tell
	end tell
end tell

Gruss
 

mac@engelthal

Rheinischer Krummstiel
Registriert
15.03.07
Beiträge
386
Funktioniert tatsaechlich :)

Edit: Ich konnte es gar nicht aufhalten, sorry :D