Python:chrome.exe的通用webbrowser.get()。open()无法正常工作
您必须在webbrowser.get调用中使用unix样式的路径:
webbrowser.get('C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s').open('http://google.com')
这是因为webbrowser内部shlex.split在路径上执行,只会删除Windows样式的路径分隔符:
>>> cmd = 'C:Usersoreild1AppDataLocalGoogleChromeApplicationchrome.exe %s'>>> shlex.split(cmd)[’C:Usersoreild1AppDataLocalGoogleChromeApplicationchrome.exe’, ’%s’]>>> cmd = 'C:/Users/dan/AppData/Local/Google/Chrome/Application/chrome.exe %s'>>> shlex.split(cmd)[’C:/Users/dan/AppData/Local/Google/Chrome/Application/chrome.exe’, ’%s’]
shlex如果给定posix=False@R_168_5301@,实际上webbrowser将在这里做正确的事情,但即使在Windows上也不会提供。可以说这是一个错误webbrowser。
解决方法我使用的是Python 2.7(Win 8.1x64),我想在Chrome中打开一个URL。由于Chrome仅在3.3+中受本机支持,因此我尝试了一个通用调用:
import webbrowserwebbrowser.get('C:Program Files (x86)GoogleChromeApplicationchrome.exe %s').open('http://google.com')
路径是正确的,并且print确实为我提供了处理程序:
'<webbrowser.GenericBrowser object at 0x0000000002D26518>'
但是,open()-最好是open_new_tab())-功能不起作用。它返回False。
如果我运行命令
'C:Program Files (x86)GoogleChromeApplicationchrome.exe' 'https://google.com'
在Windows运行对话框中,它确实起作用。
如果我将Chrome设置为标准浏览器并运行
webbrowser.get().open('http://google.com')
它确实有效,但这不是我想要的。
有谁知道出什么事了吗?
相关文章: