AppleScript-Fehler "Menüelement kann nicht abgerufen werden".

Ich suche nach Hilfe zur Behebung dieses Fehlers:

error "Systemereignisse haben einen Fehler: Menüpunkt \"Verlauf löschen...\" des Menüs \"Safari\" der Menüleiste 1 des Prozesses \"Safari\" kann nicht abgerufen werden." Nummer -1728 vom Menüpunkt "Clear History..." des Menüs "Safari" der Menüleiste 1 des Prozesses "Safari"

Mein Code ist:

tell application "Safari"
    launch
    activate
    if not (exists document 1) then
        make new document at front
    end if
end tell
delay 1
tell application "System Events"
    keystroke "e" using {option down, command down}
    tell process "Safari"
        tell menu bar 1
            tell menu "Safari"
                tell menu item "Clear History..."
                    click
                    every UI element
                end tell
            end tell
        end tell
        tell window 1
            tell sheet 1
                tell button "Clear History"
                    click
                end tell
            end tell
        end tell
        tell menu bar 1
            tell menu bar item "Develop"
                tell menu 1
                    click menu item "Empty Caches"
                end tell
            end tell
        end tell
    end tell
end tell
Ich bin weit davon entfernt, ein Experte auf diesem Gebiet zu sein, aber ich bin mir ziemlich sicher, dass Sie sich AXMenuItems ansehen müssen, um einen bestimmten Menübefehl von Applescript genau treffen zu können, wie ich es in dieser Antwort getan habe - apple.stackexchange.com/ a/209219/85275 - Mehr Glück als gutes Management hat mich dorthin gebracht, aber es könnte für Sie nützlich sein.
Gilt das, da dies keine Option zum Aktivieren/Deaktivieren ist?
Da bin ich mir nicht ganz sicher - aber ich denke, Sie brauchen diese Struktur, um die Menüoption überhaupt zu finden. Die lange Liste von "von Menü "x" von Menüpunkt 1 von ..." usw. scheint jedoch entscheidend zu sein - und es ist ein Teil, den ich wirklich nicht vollständig verstehe, wie er strukturiert ist. Mein Googeln hat mich weit und breit geführt, während ich versuchte, diese Antwort zu finden.
Nur zur Verdeutlichung: Du willst klicken Clear Historyund Empty Cachesrichtig?
Ja richtig. Ich möchte eigentlich Safari zurücksetzen. Das ist das Leeren des Caches und das Löschen des Verlaufs

Antworten (2)

Ich denke, Sie müssen den Menüpunkt „Verlauf und Website-Daten löschen…“ erstellen, nicht „Verlauf und Website-Daten löschen…“ (ein einzelnes Ellipsenzeichen: „…“ vs. drei Punkte: „…“

Ich habe nicht das gesamte Skript getestet, aber diese Änderung brachte den Menüpunkt in Safari für mich über AppleScript.

Das hat mich genervt und ich habe diesen Beitrag bei meiner Suche gefunden.

In meinem Fall brauchte ich auf jeden Fall ein Auslassungszeichen (…) anstelle von drei Punkten (…) nach dem Menüpunkt, auf den ich AppleScript klicken lassen wollte.

Kopieren Sie die Auslassungspunkte in diese Nachricht oder die Antwort oben und fügen Sie sie ein.

HINWEIS: Das Auslassungszeichen SIEHT (fast?) identisch mit drei Punkten ohne Leerzeichen aus, wenn es auf dieser Webseite angezeigt wird, sodass es nicht sofort sichtbar ist, dass es einen Unterschied in den Beispielen unten gibt, nur wenn Sie sie betrachten, aber wenn Sie versuchen, sie zu kopieren , werden Sie sehen, dass nach dem Wort „Verlauf“ ein einzelnes Zeichen steht und das andere drei Zeichen (alles Punkte).

So nicht:

tell Menüpunkt "Verlauf löschen..."

aber ja:

tell Menüpunkt „Verlauf löschen…“

In der anderen Antwort wurde bereits die Notwendigkeit von ... einem einzelnen Ellipsenzeichen angegeben: "..." gegenüber drei Punkten: "..."