【问题标题】:get safari and chrome opened tabs on mac with Appcelerator使用 Appcelerator 在 Mac 上获取 safari 和 chrome 打开的标签
【发布时间】:2011-12-18 15:45:45
【问题描述】:

我需要读取 Safari、Chrome 和 Firefox(可选)中打开的标签页 URL,并将它们转换为数组。 我使用的是Titanium Appcelerator to develop a Dektop Application,它支持 Python。

也可以通过调用返回我正在寻找的内容的 AppleScript 来完成。 例如这个简单的 AppleScript 显示我在寻找什么

tell application "Safari"
    get URL of every tab of every window
end tell

现在我如何从 Python 或 JavaScript 调用它(我不知道是否可以使用 JavaScript)?

有人有好主意吗? 谢谢!

【问题讨论】:

    标签: python safari applescript titanium appcelerator


    【解决方案1】:

    有两种方法可以通过 python 做到这一点...

    1.(我的偏好)安装appscript:pip install appscript

    import appscript
    urls = appscript.app('Safari').windows.tabs.URL()
    

    2.Shell到命令行并调用osascript:

    from subprocess import Popen, PIPE 
    cmd = "/usr/bin/osascript -e 'tell application \"Safari\"' -e 'get URL of every tab of every window' -e 'end tell'"
    pipe = Popen(cmd, shell=True, stdout=PIPE).stdout
    urls = pipe.readlines()
    

    【讨论】:

      【解决方案2】:

      您可以像这样将 AppleScript 嵌入到 python 脚本中

      import os
      cmd = """osascript -e 'tell application \"Safari\" to get the URL of every tab of every window'"""
      def url():
          os.system(cmd)
      url()
      

      我希望这会有所帮助!

      【讨论】:

      • @stefanodiluca 欢迎来到 StackOverflow!如果此解决方案有效,请单击我的答案下的复选标记,让其他用户知道您找到了解决方案!
      • subprocess 现在被推荐超过 os.system
      • 问题还在于寻找有关 AppleScript 的指导,该指导将执行“每个窗口的每个选项卡”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多