Firefox是否提供AppleScript支持来获取windows的URL?

Firefox是否提供AppleScript支持来获取windows的URL?,firefox,applescript,Firefox,Applescript,我正在尝试编写一个AppleScript,其中包括获取Firefox中每个打开网页的URL 在Safari(和Chrome)中,这样做非常简单: tell application "Safari" to return URL of every tab in every window 然而,在我看来,Firefox并没有提供真正的AppleScript支持,比如获取任何选项卡或窗口的URL。当我在谷歌上搜索“Firefox”和“AppleScript”这两个词时,我经常会收到Firefox bu

我正在尝试编写一个AppleScript,其中包括获取Firefox中每个打开网页的URL

在Safari(和Chrome)中,这样做非常简单:

tell application "Safari" to return URL of every tab in every window
然而,在我看来,Firefox并没有提供真正的AppleScript支持,比如获取任何选项卡或窗口的URL。当我在谷歌上搜索“Firefox”和“AppleScript”这两个词时,我经常会收到Firefox bug请求,请求恢复AppleScript支持,最后一次更新是在2010年或2011年(比如和)


那么,我认为Firefox不再提供任何适当的AppleScript支持对吗?我意识到有一些半解决办法,比如在AppleScript中模拟关键命令,但这些对我来说并不实用。

要查看Firefox响应的所有AppleScript命令,启动AppleScript编辑器,选择菜单
文件>打开字典…
,然后选择Firefox应用程序


您会发现您所期待的:Firefox不提供任何有用的AppleScript命令。

Firefox 3.5及更早版本支持此功能,尽管该命令在字典中不可见:

tell application "Firefox"
    get «class curl» of window 1
end tell
Firefox 3.6删除了这一功能,到目前为止(Firefox 22.0),它还没有被恢复。

Firefox团队显然是从2002年开始恢复的

同时,您可以使用UI编程来获取最前面选项卡的URL

tell application "System Events" to tell process "Firefox"
    get value of text field 1 of combo box 1 of toolbar 2 of group 1 of front window
end tell

适用于68.0.2版,但可能会在将来的Firefox更新中被破坏。

这适用于Firefox。不过,它并不那么漂亮:)


当。

这是一个有趣的解决方法时,我使用了类似的方法,不幸的是,根据当前在多选项卡窗口上选择的选项卡,它不会产生一致的结果。此外,它返回的列表中,名称不按窗口的选项卡顺序排列。在过去的几个月里,有一些关于Firefox支持的活动。但尚未实施:
tell application "Firefox"
    activate
    tell application "System Events" to keystroke "1" using command down
    set firstTitle to name of front window
    
    set tabList to {}
    set myTitle to "__f_o_o_b_a_r__" -- some random initial name
    set counter to 0 -- make sure that loop ends
    
    repeat until (counter > 100 or myTitle is equal to firstTitle)
        tell application "System Events" to key code 121 using control down
        tell application "System Events" to keystroke "l" using command down
        tell application "System Events" to keystroke "c" using command down
        delay 0.1
        set myTitle to (name of front window)
        copy (the clipboard) to the end of the |tabList|
        set counter to counter + 1
    end repeat
end tell

tabList