Ошибка AppleScript «не удается получить пункт меню»

Я ищу помощь в исправлении этой ошибки:

ошибка "Системные события получили ошибку: не удается получить пункт меню \"Очистить историю...\" меню \"Safari\" строки меню 1 процесса \"Safari\"." номер -1728 из пункта меню "Очистить историю..." меню "Safari" строки меню 1 процесса "Safari"

Мой код:

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
Я далек от того, чтобы быть экспертом в этом, но я почти уверен, что вам нужно смотреть на AXMenuItems, чтобы иметь возможность точно нажать определенную команду меню с помощью Applescript, как я сделал в этом ответе - apple.stackexchange.com/ a/209219/85275 - Мне повезло больше, чем хорошее управление, но это может быть полезно для вас.
Будет ли это применимо, поскольку это не опция «Отметить/снять отметку»?
Я не совсем уверен в этом, но я думаю, что вам нужна эта структура, чтобы найти пункт меню в первую очередь. Длинный список «из меню «x» из пункта меню 1 из …» и т. д. кажется важным, хотя - и это одна часть, которую я действительно не полностью понимаю, как она структурирована. Мой поиск в Google завел меня далеко и широко, пока я пытался найти ответ.
Просто чтобы уточнить: вы хотите нажать Clear Historyи Empty Cachesправильно?
Да исправить. Я в основном хочу сбросить сафари. Что очищает кеш и очищает историю

Ответы (2)

Я думаю, вам нужно сделать пункт меню «Очистить историю и данные веб-сайта…», а не «Очистить историю и данные веб-сайта…» (один символ многоточия: «…» вместо трех точек: «...»

Я не тестировал весь сценарий, но это изменение привело к тому, что пункт меню в Safari появился у меня через AppleScript.

Это ворчало мне, и я нашел этот пост в своем поиске.

Определенно, в моем случае мне нужен был символ многоточия (…) вместо трех точек (…) после пункта меню, который я пытался щелкнуть AppleScript.

Скопируйте/вставьте многоточие в это сообщение или ответ выше.

ПРИМЕЧАНИЕ: символ многоточия ВЫГЛЯДИТ (почти?) идентичным трем точкам без пробелов при просмотре на этой веб-странице, поэтому сразу не видно, что в приведенных ниже примерах есть разница, просто взглянув на них, но если вы попытаетесь скопировать , вы увидите, что у одного есть один символ после слова «История», а у другого три символа (все периоды).

Итак, НЕ:

подскажите пункт меню "Очистить историю..."

но да:

подскажите пункт меню "Очистить историю..."

В другом ответе уже говорилось о необходимости... одного символа многоточия: "..." против трех точек: "..."