【问题标题】:Problems Opening Firefox打开 Firefox 的问题
【发布时间】:2011-05-29 21:14:43
【问题描述】:

我正在尝试编写一个 Python 脚本来打开一个 URL,但是当我尝试使用它时总是出错:

import webbrowser

firefox = webbrowser.get('mozilla')

这是错误:

Traceback (most recent call last):
  File "C:\Users\Gelu\Documents\CSCI\Image URL Generator\src\Generator.py", line 8, in <module>
    firefox = webbrowser.get('mozilla')
  File "C:\Program Files\Python31\lib\webbrowser.py", line 53, in get
    raise Error("could not locate runnable browser")
webbrowser.Error: could not locate runnable browser

任何想法为什么这不起作用?

【问题讨论】:

    标签: python firefox browser


    【解决方案1】:

    如果你这样做

    import webbrowser
    print webbrowser._browsers
    

    您将获得系统上已识别浏览器的列表。

    【讨论】:

      【解决方案2】:

      我认为您正在尝试打开 Firefox,对吗?

      firefox = webbrowser.get('firefox')
      

      有效。来自docs,浏览器类型。

      【讨论】:

      • 因此我感到困惑。我正在阅读有关它如何读取 PATH 文件或类似内容以及它如何不在其中的内容。我不确定,我只是很困惑为什么它不起作用
      • Ryan,我认为mozilla 可能指的是SeaMonkey?我不知道。但是 Firefox 是 firefox,这就是它不适合你的原因。它现在应该可以工作了。
      • 在对默认浏览器进行了一些处理之后,这工作了,谢谢!
      【解决方案3】:

      对我来说,问题是 webbrowser.py 无法识别我的 Windows 机器中的任何其他浏览器。所以,我必须注册浏览器,然后启动一个新标签。

      import webbrowser
      urL='https://www.google.com'
      firefox_path="C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"
      webbrowser.register('firefox', None,webbrowser.BackgroundBrowser(firefox_path),1)
      webbrowser.get('firefox').open_new_tab(urL)
      

      希望这对某人有所帮助。

      还有一些 Python 笔记供参考,了解 register 的作用,

      webbrowser.register(name, constructor[, instance])¶

      注册浏览器类型名称。注册浏览器类型后,get() 函数可以返回该浏览器类型的控制器。如果 instance 没有提供,或者是 None,则在需要时将不带参数调用构造函数来创建实例。如果提供了实例,则永远不会调用构造函数,并且可能为 None。此入口点仅在您计划设置 BROWSER 变量或使用与您声明的处理程序名称匹配的非空参数调用 get() 时有用。

      【讨论】:

      • 这也与 google-chrome 完美配合。它过去不需要这个,但 windows10 更新可能改变了一些事情。打印出浏览器列表只会让我玩“windows-default”(根据上一个答案)。
      【解决方案4】:

      总结并为解决问题的未来搜索者添加更多技巧:

      1. 如果您无法打开 Firefox 或收到错误“无法找到可运行的浏览器”(在 webbrowser.py 中),首先请检查 Python 是否可以看到任何浏览器(您应该获得浏览器列表,如前所述@Hugh Bothwell 上面,但对我来说,它只适用于 print 的括号

        import webbrowser print (webbrowser._browsers)

      2. 如果没有 Firefox 或者您有一个空列表,您应该将浏览器的文件夹添加到系统路径(在此示例中为 Firefox)(此解决方案由 @ntk4 here 提供)

      Windows7 -&gt; Start -&gt; Control Panel -&gt; System -&gt; Advanced System Settings (on the left) -&gt; pop-up window "System Properties" appears -&gt; Advanced -&gt; click on "Environment Variables" in the bottom right corner -&gt; in the pop-up appeared in "System variables" field find "Path" and click on "Edit" button under the field -&gt; in the end of the "Variable value" field add

      ;C:\Program Files\Mozilla Firefox\firefox.exe
      

      ->单击确定并在下一个窗口中应用(在您的机器或操作系统上可能会有所不同)-> 重新启动您的笔记本电脑/PC

      1. 在 Python 中注册您的浏览器(由 @Ali Moshiri here 回答)

        import webbrowser urL='https://www.python.org' mozilla_path="C:\Program Files\Mozilla Firefox\firefox.exe" webbrowser.register('firefox', None,webbrowser.BackgroundBrowser(mozilla_path)) webbrowser.get('firefox').open_new_tab(urL)

      这个魔法对我有用,最后我可以使用我想要的浏览器而不是默认浏览器:)

      【讨论】:

        【解决方案5】:

        我无法让 webbrowser 找到我的默认浏览器,这就是我修复它的方法

        import webbrowser
            url = input("Enter Website Url: ")
            firefox_path = "C:\\Program Files\\Mozilla Firefox\\firefox.exe" #define the Path to firefox
            webbrowser.register('firefox', None,webbrowser.BackgroundBrowser(firefox_path))
            webbrowser.get('firefox').open_new_tab(url)
        

        基本上已经在这篇文章中给出了一个很好的答案的更新版本 这也可以用于“google-chrome”参考 webbrowser.register 下的https://docs.python.org/3/library/webbrowser.html?highlight=webbrowser#module-webbrowser 以获取更多信息

        【讨论】:

          猜你喜欢
          • 2012-09-10
          • 2015-12-25
          • 1970-01-01
          • 2014-01-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-23
          • 1970-01-01
          相关资源
          最近更新 更多