QWebInspector:如何手动切换选项卡

2024-09-24 02:16:54 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用QWebInspector(python,PyQT4)时,它总是打开默认激活的“Elements”选项卡。
有没有一种方法可以通过编程将选项卡切换到网络?

现在它看起来像: QWebInspector opens "Elements" tab

我想看的是: enter image description here

脚本源:

import sys, PyQt4.QtCore, PyQt4.QtGui, PyQt4.QtWebKit

if __name__ == '__main__':
    app = PyQt4.QtGui.QApplication(sys.argv)
    webview = PyQt4.QtWebKit.QWebView()
    inspector = PyQt4.QtWebKit.QWebInspector()

    webview.page().settings().setAttribute(
        PyQt4.QtWebKit.QWebSettings.DeveloperExtrasEnabled, True
    )
    inspector.setPage(webview.page())

    inspector.showMaximized()

    webview.load(PyQt4.QtCore.QUrl('http://yahoo.com'))
    app.exec_()

当然,适当的С++/QT方法也是合适的! 谢谢!


Tags: 方法appinspector编程syspageelements选项卡
1条回答
网友
1楼 · 发布于 2024-09-24 02:16:54

WebInspector是基于web的。您将需要获得第一个,也是唯一的子检查器,它将是QWebView。在

像这样:

QList<QWidget*> list = inspector.findChildren<QWidget *>();
QWebView* wv =(QWebView*) list.at(0);

然后连接到该视图的javaScriptWindowObjectCleared信号,并在连接的插槽中执行javascript。你需要object来处理这个问题。例如,我把它叫做someObject

^{pr2}$

将slot添加到someObject的类中:

void openNetworkTab(){
    wv->page()->mainFrame()->evaluateJavaScript("document.addEventListener('DOMContentLoaded',function(){setTimeout(function(){document.querySelector('.toolbar-item.network').click()},200);});");
}

延迟200只是为了等待所有事件绑定初始化,然后单击

这里列出了所有inspector选项卡类,以防万一:.elements、.resources、.network、.scripts、.timeline、.profiles、.audits、.console

相关问题 更多 >