从控制台上的PyQt5浏览器删除日志


问题内容

我有一个带有内置浏览器的PyQt5应用程序虚拟桌面。使用浏览器时,我从浏览器中收到JS错误,类似于Chrome在“ Web
Inspector”中放置JS和HTML错误的方式。我如何摆脱这些错误。

要复制错误,请下载虚拟桌面并从PYPI安装PyQt。您需要运行main.py,选择一个QStyle,然后单击浏览器(电源按钮旁边)。转到任何网站(例如Google),然后切换回控制台。您会注意到控制台中填充了JS错误。


问题答案:

在使用您的项目时,我没有观察到问题,但之前曾遇到此问题,解决方案是编写javaScriptConsoleMessage()方法,消除了默认行为。

from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets

class WebEnginePage(QtWebEngineWidgets.QWebEnginePage):
    def javaScriptConsoleMessage(self, level, msg, line, sourceID):
        pass

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    view = QtWebEngineWidgets.QWebEngineView()
    page = WebEnginePage(view)
    view.setPage(page)
    view.load(QtCore.QUrl("https://www.google.com/"))
    view.show()
    sys.exit(app.exec_())