Val*_*rok 5 python scripting firefox python-3.x
我正在尝试编写一个脚本,它将为我启动firefox,在新标签中打开谷歌,并能够进行搜索(例如,www.espn.com).我目前正在尝试通过使用webbrowser模块实现这一点,但每次尝试从脚本启动Firefox时都会遇到错误.另外,firefox不是我的默认浏览器.
import webbrowser
webbrowser.get('firefox').open_new_tab('http://www.google.com')
Run Code Online (Sandbox Code Playgroud)
每当我运行这个时,我都会收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
我不确定为什么脚本正在努力找到firefox.exe我也尝试'firefox'在c中的firefox.exe的实际位置中指定:但是我仍然得到相同的错误.
我确信我的代码中有一个小错误,我目前看不到,如果有人可以帮助指出我做错了什么我会非常感激!
我也在我的Windows机器上安装了Firefox,并且有相同的错误.
如果在IDLE中运行以下两行:
import webbrowser
print webbrowser._browsers # or print(webbrowser._browsers) for Python 3.x
Run Code Online (Sandbox Code Playgroud)
然后你会得到一个dict可用的浏览器控制器,如源代码中所述.在我的系统上打印:
{'windows-default': [<class 'webbrowser.WindowsDefault'>, None],
'c:\\program files\\internet explorer\\iexplore.exe': [None, <webbrowser.BackgroundBrowser object at 0x01BAF6B0>]
}
Run Code Online (Sandbox Code Playgroud)
我认为值得注意的是,我在这台计算机上安装了IE,Chrome和Firefox,看起来只有"默认"和"Internet Explorer".根据文档,密钥'firefox'和'mozilla'应该工作,但当然他们没有.
回到源代码,在第539行到第563行中,如果相应的(硬编码的)密钥(例如'firefox'或者'chrome')被认为是命令(使用_iscommand(cmd)第121行),Python看起来只会注册浏览器.
我关闭了IDLE并添加了Firefox路径%path%,发现在重启IDLE后,_iscommand('firefox')返回True并webbrowser.get('firefox)返回一个<webbrowser.BackgroundBrowser object at 0x01BDF7F0>.但是,webbrowser._iscommand("chrome")仍然返回False并 webbrowser.get("chrome")仍然抛出上述异常.
我的结论是,除非webbrowser模块更改为不依赖%path%(至少在Windows上),否则您可能必须%path%先将Firefox路径添加到变量中,或者假设Firefox是默认浏览器.
| 归档时间: |
|
| 查看次数: |
4997 次 |
| 最近记录: |