关闭cefpython客户端并重新启动一个新客户端



在应用程序流程中,我想关闭运行cefpython的客户端并打开一个新的客户端;我有这个功能

....
while True:
settings = {...}
settings2= {...}
cef.Initialize(settings=settings)
self.BROWSER = cef.CreateBrowserSync(url=url,
window_title="Tutorial", 
browserSettings=settings2)
bindings = cef.JavascriptBindings(bindToFrames=False,
bindToPopups=False)
bindings.SetFunction("backend", func)
self.BROWSER.SetJavascriptBindings(bindings)

cef.MessageLoop()
cef.Shutdown()

在另一个函数中,我调用

self.BROWSER.CloseBrowser(True)

浏览器在第一次运行时启动并关闭,但不会重新启动。如果我评论行

...
cef.MessageLoop()
#cef.Shutdown()

在第一个功能中,浏览器确实重新启动了,但它卡住了,我无法使用它。提前谢谢。

cef.Initializecef.Shutdown这样的函数在应用程序生存期内只能调用一次。您也不应该多次调用cef.MessageLoop。您的代码while True没有多大意义,因为您没有给浏览器初始化和加载时间。您应该使用LoadHandler.OnLoadEnd或OnLoadingStateChange等事件,具体取决于您要完成的任务。

最新更新