Python: generic webbrowser.get (). Open () для chrome.exe не работает

Я нахожусь на Python 2.7 (Win 8.1 x64), и я хочу открыть URL-адрес в Chrome. Поскольку Chrome поддерживается только в 3.3+, я пытался использовать общий вызов:

import webbrowser webbrowser.get("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %s").open("http://google.com") 

Путь правильный, и печать дает мне обработчик:

 "<webbrowser.GenericBrowser object at 0x0000000002D26518\>" 

Однако функция open () – предпочтительно open_new_tab ()) не работает. Он возвращает False.

Если я запустил команду

 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "https://google.com" 

в диалоговом окне запуска Windows это действительно работает.


Если я устанавливаю Chrome в качестве стандартного браузера и запускаю

 webbrowser.get().open("http://google.com") 

он работает, но это не то, что я хочу.

Кто-нибудь знает, что происходит не так?

  • Python: отключить изображения в Selenium Google ChromeDriver
  • Подключиться к уже запущенному экземпляру хром, используя селен в python
  • Можно ли запустить собственный код python в chrome?
  • IE и Chrome не работают с Selenium2 Python
  • как открыть хром в режиме инкогнито от Python
  • Как я могу установить прокси с аутентификацией в selenium chrome веб-драйвер, используя python
  • Откройте хром-удлинитель через селен-webdriver
  • Загрузка с хромированным безголовым и селеном
  • 2 Solutions collect form web for “Python: generic webbrowser.get (). Open () для chrome.exe не работает”

    Вы должны использовать пути стиля unix в вызове webbrowser.get :

     webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s").open("http://google.com") 

    Это связано с тем, что webbrowser внутренне выполняет shlex.split на пути, который просто стирает разделители пути в стиле Windows:

     >>> cmd = "C:\\Users\\oreild1\\AppData\\Local\\Google\\Chrome\\Application\\chrome.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 , но webbrowser не будет предоставлять это, даже в Windows. Это, возможно, ошибка в webbrowser .

    Следуя приведенным выше рекомендациям и работая над Windows, чтобы включить Firefox, я изменил (и не комментировал) следующую строку в файле конфигурации (обратите внимание на% s в конце):

    c.NotebookApp.browser = 'C: / Program Files (x86) / Mozilla Firefox / firefox.exe% s'

    Это сработало для меня. благодаря

    Python - лучший язык программирования в мире.