Kann die Automatisierung mit AppleScript Text von einer Webseite in eine Texteditor-App kopieren?

Als ersten Versuch bei AppleScript möchte ich einen Suchbefehl und einige Folgeaktionen automatisieren, die normalerweise Benutzereingaben wären.

Letztendlich möchte ich das Hinzufügen von Liedtexten zu meiner iTunes-Mediathek automatisieren. Meine erste Herausforderung besteht darin, Safari anzuweisen, eine Webseite nach einem Satz zu durchsuchen, auf den Link zu klicken und dann den einfachen Text auf der angezeigten Seite in die Zwischenablage zu kopieren und ihn dann in den Texteditor einzufügen.

Ich bin mir nicht sicher, wie ich Safari anweisen soll , command+ F, einen Satz aus der Zwischenablage einzufügen und dann auf den hervorgehobenen Link zu "klicken".

Ich brauche kein vollständiges Skript, aber zumindest Hilfe beim Einstieg

Wie würde ich einen oder mehrere Teile dieser Automatisierung ausführen?

Antworten (1)

Ihr erstes AppleScript! Erstaunlich ... Und ein ehrgeiziges Projekt für den Anfang, aber ich sehe seinen Wert.

Meine Antwort wird nicht das Drehbuch für Sie schreiben, aber ich werde Ihnen Tipps geben, wie Sie Ihr Problem anders angehen und das, was Sie wollen, etwas leichter erreichen können.

Um Ihre spezifischen Fragen zuerst zu beantworten:

Safari Cmd-F sagen

    tell application "Safari" to activate

    tell application "System Events" to keystroke "f" using command down

Fügen Sie einen Satz aus der Zwischenablage ein

Senden Sie ein Cmd-V. Möglicherweise benötigen Sie eine kleine Verzögerung zwischen den beiden Tastendruckbefehlen.

„Klicken“ Sie auf den hervorgehobenen Link

Du kannst nicht. Sie werden nicht in der Lage sein, mit einer Cmd-F-Suche mit großer Leichtigkeit zu identifizieren, was hervorgehoben ist (möglicherweise durch GUI-Skripting, aber das wird ein Chaos sein). Ich werde darauf in Kürze zurückkommen.

Ein anderer Versuch

Gehen wir rückwärts vor, nehmen wir an, Sie haben den Text erhalten, den Sie in TextEdit einfügen müssen . Fügen Sie es nicht ein. Setzen Sie den Inhalt eines neuen TextEdit- Dokuments auf den Inhalt der Zwischenablage:

    tell application "TextEdit" to set text of (make document) to the clipboard

Verwenden Sie diesen Befehl, um die Zwischenablage auf den Inhalt einer Safari-Webseite zu setzen:

    tell application "Safari" to set the clipboard to  ¬
        (text of current tab of front window) as string

Und das bringt uns zurück zum Klicken auf den Link ...

Wenn Sie buchstäblich auf einen Link auf einer Webseite klicken möchten, besteht eine Methode darin, sicherzustellen, dass Javascript von Apple-Ereignissen zulassen im Menü „ Entwickeln“do JavaScript von Safari aktiviert ist, und eine auszuführen , um den Link mit dem relevanten Suchelement auszuwählen und darauf zu klicken:

    tell application "Safari" to tell document 1 to do JavaScript ¬
        "Array.from(document.links).find(a => a.href.includes(\"cjk\")).click()"

Dadurch wird nur die erste Instanz der Suchzeit gefunden, von der ich abgeleitet habe, dass sie ausreicht, da Ihre Methode zur Durchführung einer Cmd + F-Suche damit zufrieden zu sein schien, das erste Vorkommen als das einzige von Bedeutung zu akzeptieren.

Ich denke jedoch, dass der gesamte Prozess rationalisiert und viel robuster gemacht werden könnte, indem wir Automator verwenden , um uns zu helfen. Es kann alle URLs direkt von einer Webseite extrahieren (Sie müssen es nur mit der URL der betreffenden Webseite füttern). Anschließend können Sie diese URLs filtern, um nach bestimmtem Text zu suchen. Sobald Sie die gewünschte URL haben, kann Automator den Inhalt als Text herunterladen und direkt in ein neues TextEdit- Dokument einfügen , anstatt darauf zu klicken . Ich glaube, dass so gut wie kein AppleScript benötigt wird, obwohl Sie es mit etwas AppleScript ergänzen können, um die Dinge hier und da nach Bedarf zu optimieren.

Ohne Ihre betreffende Webseite kann ich den für Ihre Anwendung spezifischen Workflow nicht entwickeln. Allerdings würde Ihnen das auch die Freude am Selbermachen nehmen. Am Beispiel dieser Stack Exchange-Webseite isoliert der folgende Workflow die URL Ihres Benutzerprofils (der Link zu dem sich am Ende der von Ihnen gestellten Frage befindet), lädt den Text aus Ihrem Profil herunter und wandelt ihn in einen neuen TextEdit um dokumentieren:

Geben Sie hier die Bildbeschreibung ein

Hoffentlich reicht dies aus, um Sie auf dem besten Weg zu Ihrem Ziel zu bringen. Wenn Sie eine Klärung benötigen, hinterlassen Sie einen Kommentar und ich werde mich bei Ihnen melden, wenn ich kann.