如何在QWebView上获取所有document.body.innerText?我使用QT版本5.5.1。
例如,
要加载的html文件
<script>
document.write("hello world!");
</script>
我希望得到“你好世界”。
所以,我在QT上试过这样的事情
QWebView *wv = new QWebView(this);
QWebFrame *frame = wv->page()->mainFrame();
frame->load(QUrl("file:// ~ file path ~"));
QString string = frame->toPlainText();
// then write string to file for checking
我预计字符串是“hello world”但是,什么都没有。 我搜索并发现了这个link,我改变了这样的代码,但仍然没有。
我是否误解了PlatinText()?我如何在QT 5.5上获得DOM innerText?
答案 0 :(得分:0)
您没有留出足够的时间来更新页面。加载HTML需要一点时间,更不用说让Javascript执行了。
这里有几个解决方法:
toPlainText()
之前,请先使用QTimer等待几秒钟。这很麻烦,因为没有办法确切知道等待多长时间,但它足以用于演示目的。document.write()
后向C ++代码发回通知。例如,您可以通过WebSocket执行此操作,或使用Qt WebChannel。