【问题标题】:execution stops after web browser opensWeb 浏览器打开后执行停止
【发布时间】:2017-12-12 15:04:22
【问题描述】:
webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s").open('file://' + os.path.realpath('get.html'))
print('hello')

我的一个 python 文件中有上面的代码。当我执行它时,它会很好地打开“get.html”。但是,此时执行会冻结,在我关闭浏览器之前,命令提示符不会说“你好”。

谁能解释一下如何解决这个问题?

【问题讨论】:

  • 这可能是预期的行为。您的程序运行第一行,直到它从浏览器程序中退出。您可以通过创建一个新进程来解决此问题。使用多处理
  • 我遇到了类似的问题,但不幸的是从未找到可靠的解决方案。我使用的解决方法只是使用另一个网络浏览器/驱动程序。无论出于何种原因,firefox 在我的工作电脑上工作,而 chrome 在家里工作。他们麻烦运行win7和相同版本的python。

标签: python python-webbrowser


【解决方案1】:

这对我有用:

import os
import webbrowser

url = "file://" + os.path.realpath("get.html")
browser_path = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
#browser_path = "C:/Program Files/Internet Explorer/iexplore.exe"

webbrowser.register("wb", None, webbrowser.BackgroundBrowser(browser_path))
webbrowser.get("wb").open(url)

【讨论】:

    【解决方案2】:

    查看webbrowser.get 的来源,我发现您可以附加& 使其成为BackgroundBrowser

    import webbrowser
    webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s &").open("https://stackoverflow.com")
    

    现在它不会挂起,您可以添加其他参数,例如 incognito

    在 Windows、Python 3.8 上试过

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-03
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多