5

我正在尝试编写一个脚本,它将为我启动 Firefox,在新选项卡中打开 google,并能够进行搜索(例如,www.espn.com)。我目前正在尝试通过使用 webbrowser 模块来实现这一点,但是每次尝试从脚本启动 Firefox 时都会遇到错误。另外,firefox 不是我的默认浏览器。

import webbrowser
webbrowser.get('firefox').open_new_tab('http://www.google.com')

每当我运行它时,我都会收到以下错误:

Traceback (most recent call last):
  File "C:/Python33/test Bing.py", line 6, in <module>
    webbrowser.get('firefox').open_new_tab('http://www.google.com')
  File "C:\Python33\lib\webbrowser.py", line 53, in get
    raise Error("could not locate runnable browser")
webbrowser.Error: could not locate runnable browser

我不确定为什么脚本很难找到 firefox.exe 我也尝试'firefox'在 c: 中指定 firefox.exe 的实际位置:但是我仍然遇到相同的错误。

我确信我的代码中有一个我目前看不到的小错误,如果有人可以帮助指出我做错了什么,我将不胜感激!

4

2 回答 2

7

我的 Windows 机器上也安装了 Firefox,并且有同样的错误。

如果在 IDLE 中运行以下两行:

import webbrowser
print webbrowser._browsers # or print(webbrowser._browsers) for Python 3.x

然后您将获得一个dict可用的浏览器控制器,如源代码中所述。在我的系统上打印:

{'windows-default': [<class 'webbrowser.WindowsDefault'>, None], 
    'c:\\program files\\internet explorer\\iexplore.exe': [None, <webbrowser.BackgroundBrowser object at 0x01BAF6B0>]
}

我有 IE、Chrome 和 Firefox,但这里只显示“默认”和“Internet Explorer”。根据文档'firefox',这些键'mozilla'应该可以工作,但这里没有。

源代码的第 539-563 行开始,Python 只会在浏览器对应的键(例如'firefox''chrome')是使用_iscommand(cmd).

我添加了 Firefox 路径%path%并重新启动了 IDLE。_iscommand('firefox')返回Truewebbrowser.get('firefox)返回一个<webbrowser.BackgroundBrowser object at 0x01BDF7F0>. 但是,webbrowser._iscommand("chrome")仍然返回 False并且 webbrowser.get("chrome")仍然抛出异常。

结论

您必须首先将 Firefox 路径添加到%path%变量中,或者假设 Firefox 是默认浏览器。

于 2013-08-26T14:24:54.470 回答
2

确保 Firefox 可执行文件位于路径上(%PATH%在 Windows 上,$PATH在 Linux 上)。

于 2013-08-26T14:03:35.900 回答