Я бы сказал, что самый простой и эффективный способ получения списка свойств AppleScript innerHTML
значений свойств для набора элементов HTML заключается в следующем:
tell application "Safari" to tell ¬
the front document to set ¬
myList to do JavaScript ¬
"Array.from(
document.getElementsByClassName('auto-date-time'),
x => x.innerHTML
);"
РЕДАКТИРОВАТЬ (2019-04-02):
Обращаясь к комментарию ниже, в котором вы не указали возвращаемое значение, и вместо того, чтобы предоставить возвращаемое консольное значение для JavaScript выше, вот альтернативный метод, который вы можете попробовать:
tell application "Safari" to tell document 1 to set myList to ¬
do JavaScript "[...document.getElementsByClassName('auto-date-time')]
.map( x => x.innerText );"
Двумя отличиями являются использование свойства innerText
вместо innerHTML
(которое вы также можете применить к первому JavaScript) и метод, используемый для построения массива (хотя предполагается, что вы используете последнюю версию Safari , не должно иметь никакого значения).
Замечание по отлову ошибок
Постарайтесь избавиться от привычки использовать try
блоки так, как вы это делаете. Их не следует использовать, если его целью является предотвращение завершения сценария из-за ошибки, которую вы не ожидали или не понимают , почему возникает ошибка. Они используются для обнаружения ошибок, которые вы прогнозируете, будут возникать в определенных ситуациях, зная, почему это происходит, и позволяя вам использовать их в своих интересах. В противном случае все, что вы делаете, - предотвращаете непредвиденную ошибку, предупреждая вас об ошибке в вашем скрипте и о том, где и когда он возникает.