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上也不會提供??梢哉f這是一個錯誤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')
它確實有效,但這不是我想要的。
有誰知道出什么事了嗎?
相關文章:
1. HTTP協議常用的請求頭和響應頭響應詳解說明(學習)2. Django使用HTTP協議向服務器傳參方式小結3. IntelliJ IDEA創建web項目的方法4. CentOS郵件服務器搭建系列—— POP / IMAP 服務器的構建( Dovecot )5. django創建css文件夾的具體方法6. Android studio 解決logcat無過濾工具欄的操作7. 原生JS實現記憶翻牌游戲8. idea設置提示不區分大小寫的方法9. ASP中實現字符部位類似.NET里String對象的PadLeft和PadRight函數10. Django REST Swagger實現指定api參數
