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

问题描述 投票:1回答:1

在应用程序流程中,我想关闭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()

在第一个函数中,浏览器会重新启动,但它会卡住,我无法使用它。提前致谢。

python-3.x cefpython
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.