AppleScript in Google Chrome

Bei meiner Arbeit nutze ich oft AppleScript in Verbindung mit JavaScript. Viele meiner täglichen Aufgaben müssen über Webseiten abgewickelt werden und wenn es z.B. darum geht ein Web-Formular mit Daten aus Excel oder einem anderen Programm zu füttern oder Daten aus Webseiten zu extrahieren, dann kann so eine AppleScript-JavaScript-Lösung einem schon wirklich einiges an Zeit ersparen.
Bisher war hierfür eigentlich nur Safari geeignet, da nur Safari das Ausführen längere JavaScripts via AppleScript unterstützte.

Code zum markieren einmal anklicken Code im Skript-Editor öffnen

tell application “Safari”

tell document 1

do JavaScript “document.links.length”

end tell

end tell

Aber jetzt hat auch Google Chrome eine Schnittstelle für AppleScript erhalten und kann (wenn auch noch etwas rudimentär) JavaScript-Befehle über AppleScript ausführen.

Code zum markieren einmal anklicken Code im Skript-Editor öffnen

tell application “Google Chrome”

tell window 1

tell tab 1

execute javascript “document.links.length”

end tell

end tell

end tell

Das Problem was dabei aber noch besteht: Der Aufruf führt das angegeben JavaScript zwar aus, gibt aber an AppleScript nichts aus. Stattdessen erscheint nach dem Ausführen des obigen Codes nur missing value in der Ausgabe. Zur Zeit behelfe ich mir noch damit den Rückgabewert in den Titel des Dokuments zu schreiben und diesen dann via AppleScript auszulesen:

Code zum markieren einmal anklicken Code im Skript-Editor öffnen

tell application “Google Chrome”

tell window 1

tell tab 1

execute javascript “document.title = document.links.length + 1”

delay 1

get title

end tell

end tell

end tell

Etwas unschön zumal ein delay mit rein muss, da der Titel sich nicht unmittelbar aktualisiert, aber zumindest schon mal ein Anfang, wenn Chrome der auserwählte Web-Browser sein sollte.

Kleiner Nachtrag… statt tab 1 kann man auch active tab nutzen

Leave a Reply