Swift:从safari获取文本(AppleScript)

Swift:从safari获取文本(AppleScript),swift,safari,applescript,Swift,Safari,Applescript,我没有使用Swift的经验,但我的组织不希望任何人再运行AppleScript。 不过我可以用斯威夫特 我希望能够在桌面swift应用程序上从safari获取文本 例如 property leftEdge5 : "class=\"value\">" property rightEdge5 : "</span>" tell application "Safari" set TheTransactionIDGraber to do JavaScript "docume

我没有使用Swift的经验,但我的组织不希望任何人再运行AppleScript。 不过我可以用斯威夫特

我希望能够在桌面swift应用程序上从safari获取文本

例如

property leftEdge5 : "class=\"value\">"
property rightEdge5 : "</span>"


tell application "Safari"

    set TheTransactionIDGraber to do JavaScript "document.getElementsByClassName('field emphasizedid')[0].innerHTML;" in current tab of window 1

end tell

set transactionID to ""
set theText to Unicode text
set theSource to TheTransactionIDGraber
try
    set saveTID to text item delimiters
    set text item delimiters to leftEdge5
    set classValue to text item 2 of theSource
    set text item delimiters to rightEdge5
    set transactionID to text item 1 of classValue
    set text item delimiters to saveTID
    transactionID
end try
set the clipboard to "PID: " & transactionID
属性leftEdge5:“类=\”值\“>”
产权5:“
告诉应用程序“Safari”
将TransactionIDGraber设置为在窗口1的当前选项卡中执行JavaScript“document.getElementsByClassName('field emphasisted')[0].innerHTML;”
结束语
将transactionID设置为“”
将文本设置为Unicode文本
将源设置为TransactionIDgraber
尝试
将saveTID设置为文本项分隔符
将文本项分隔符设置为leftEdge5
将classValue设置为源的文本项2
将文本项分隔符设置为rightEdge5
将transactionID设置为classValue的文本项1
将文本项分隔符设置为saveTID
事务ID
结束尝试
将剪贴板设置为“PID:&transactionID”

他们是一个简单的方法来做同样的斯威夫特?或者让swift运行一个基本的applescript并存储值?也许在plist文件中

可能重复@Joakim Danielson,我不会说这是一个重复的问题。从SWIFT中运行Apple脚本的想法是由OP提出的,实际上,这不是我为这个任务所考虑的方式(尤其是他还说他的公司不希望他使用Apple脚本,所以使用Apple Script似乎是个坏主意)。凯文,如果你的公司说不使用Apple脚本,我不建议使用AppleScript,即使是在Swift脚本中。实际上,您可以完全绕过Safari,使用Apple/s
WebKit
API。
WKWebView
类方法允许您在视口(您创建的窗口或对话框)中加载网页,也可以不在视口中加载网页,因此它在后台不可见地加载网页,但保留了操作DOM的全部功能,属于
WKWebView
实例的方法。看起来你的AppleScript正在从网页中抓取一些信息。您是否检查过该网站是否提供用于访问该信息的web服务?这将更加可靠。如果没有,您是否尝试过在web上搜索明显的关键字?e、 g.
Swift网页抓取
带来了大量有希望的链接。