您的位置:首页技术文章
文章详情页

Python:chrome.exe的通用webbrowser.get()。open()无法正常工作

【字号: 日期:2022-08-07 14:04:15浏览:2作者:猪猪
如何解决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')

它确实有效,但这不是我想要的。

有谁知道出什么事了吗?

标签: Python 编程
相关文章: