我认为我需要知道运行哪个神奇的命令行或OSA脚本程序来启动现有Firefox浏览器中的URL(如果正在运行),或者如果不运行则启动Firefox 。在Mac上。
我正在测试一个Python程序(Crunchy Python),它设置一个Web服务器,然后使用Firefox作为前端。它使用以下内容启动Web应用程序:
try:
client = webbrowser.get("firefox")
client.open(url)
return
except:
try:
client = webbrowser.get()
client.open(url)
return
except:
print('Please open %s in Firefox.' % url)
我的Mac上安装了Safari作为默认设置,但我也安装并运行了Firefox。上面的代码在Safari中启动了新的URL(在localhost上)。 Crunchy在Safari中效果不佳。我想在Firefox中看到它,因为我有Firefox。在Python 2.5,2.6和2.7(来自版本控制)下,我得到了这个:
>>> import webbrowser
>>> webbrowser.get("firefox")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/webbrowser.py", line 46, in get
raise Error("could not locate runnable browser")
webbrowser.Error: could not locate runnable browser
Firefox就在那里。我尝试使用webbrowser.get(“/ Applications / Firefox.app / Contents / MacOS / firefox%s”)启动一个新的Firefox实例,然后抱怨另一个Firefox实例已经在运行。
我真的希望webbrowser在Firefox的现有标签/窗口中打开URL,如果它已经在运行,或者在新的Firefox中尚未运行。
我查看了webbrowser.py,看起来MacOSX没有'firefox'支持。没关系,我可以补充一点。但我不知道如何以我想要的方式在Firefox中打开URL。
想法?现在,我可以强制Crunchy给我一个URL,我可以手动粘贴到Firefox中。
答案 0 :(得分:2)
您应该使用Launch Services打开URL。您可以使用LaunchServices
模块,Apple的open
实用程序或我的launch
实用程序(here)执行此操作:
open
可能最简单:
% open -b org.mozilla.firefox http://www.stackoverflow.com/
(或者,当然,Python中与subprocess
或类似的相同)应该做你想要的。
答案 1 :(得分:1)
Apple使用启动服务来查找应用程序。 open命令可以使用应用程序 - Apple developer man page for open
你想要的python命令是
client = webbrowser.get("open -a /Applications/Firefox.app %s")
根据Nicholas Riley的评论
如果Firefox位于应用程序列表中,那么您可以使用open -a Firefox.app%s