If someone is interested. I found a solution which avoid the use of QWebEngine/QWebChannel and JavaScript stuff and is a lot more easy and straight forward to use.
connect(m_pWebEngineView, &QWebEngineView::loadFinished, [=]() { m_pWebEngineView->page()->runJavaScript("window.frames[\"MyFrame\"].document.body.innerHTML", [=](const QVariant &var) { const QString content = var.toString(); // Parse the content with QRegularExpression // Here the following options are useful: QRegularExpression::MultilineOption | QRegularExpression::DotMatchesEverythingOption }); }); Best regards > Am 27.11.2015 um 09:48 schrieb Koehne Kai <kai.koe...@theqtcompany.com>: > > > >> -----Original Message----- >> From: NoRulez [mailto:noru...@me.com] >> Sent: Friday, November 27, 2015 9:35 AM >> To: Koehne Kai <kai.koe...@theqtcompany.com> >> Cc: Qt Project MailingList <interest@qt-project.org> >> Subject: Re: [Interest] Handle frames and web forms with QWebEngine >> >> This is not my tree, it's a simple webpage/webform. But it seems that the new >> "webengine" can't handle simple tasks like this. > > I think I already mentioned several approaches to do this. > >> I don't think that the following statement is too complex: >> document.getElementsByTagName('input') > > The statement itself is not complex. What it returns might be too complex for > a simple transformation into a QVariant, though. > > Regards > > Kai > >> Best regards >> >>>> Am 25.11.2015 um 13:08 schrieb Koehne Kai >>> <kai.koe...@theqtcompany.com>: >>> >>> >>> >>>> -----Original Message----- >>>> From: NoRulez [mailto:noru...@me.com] >>>> Sent: Tuesday, November 24, 2015 2:37 PM >>>> To: Koehne Kai <kai.koe...@theqtcompany.com> >>>> Cc: Qt Project MailingList <interest@qt-project.org> >>>> Subject: Re: [Interest] Handle frames and web forms with QWebEngine >>>> >>>> No one? >>>> >>>> Isn't it supported to return simple objects? >>> >>> The code that does the transformation can be found in >> web_contents_adapter.cpp, function fromJSValue(): >>> >>> http://code.woboq.org/qt5/qtwebengine/src/core/web_contents_adapter.cp >>> p.html >>> >>> Not sure how the JS representation of your tree is. >>> >>> A possible workaround might be to serialize the data structures, and return >>> a >> JSON string (e.g. by using JSON.stringify()). >>> >>> Regards >>> >>> Kai >>> >>>> Best Regards >>>> >>>> >>>>> Am 19.11.2015 um 17:29 schrieb NoRulez <noru...@me.com>: >>>>> >>>>> I tried to use m_pWebEngineView->page()->runJavaScript() after the >>>>> site is >>>> loaded, but it returns QVariant(QVariantMap, QMap()) for most of the time. >>>>> >>>>> It seems that it can handle only simple queries like >>>>> "document.title" but not for >>>> example "window.frames['MyFrame].document.forms[0].elements". >>>>> With which I expect a list of maps or similar to get the form elements. >>>>> >>>>> Best Regards >>>>> >>>>>> Am 18.11.2015 um 16:40 schrieb Koehne Kai >>>> <kai.koe...@theqtcompany.com>: >>>>>> >>>>>> >>>>>> >>>>>>> -----Original Message----- >>>>>>> From: NoRulez [mailto:noru...@me.com] >>>>>>> Sent: Wednesday, November 18, 2015 12:20 PM >>>>>>> To: Koehne Kai <kai.koe...@theqtcompany.com> >>>>>>> Cc: Qt Project MailingList <interest@qt-project.org> >>>>>>> Subject: Re: [Interest] Handle frames and web forms with >>>>>>> QWebEngine >>>>>>> >>>>>>> Is there an example for such approach? >>>>>> >>>>>> Probably not for your specific request, but there's the 'fancybrowser' >>>> example that shows how to inject JavaScript: >>>>>> >>>>>> https://doc-snapshots.qt.io/qt5-5.6/qtwebengine-webenginewidgets-fa >>>>>> nc >>>>>> ybrowser-example.html >>>>>> >>>>>> We recently also just added a 'markdowneditor' example >>>>>> demonstrating the >>>> use of QWebChannel: >>>>>> >>>>>> https://doc-snapshots.qt.io/qt5-5.6/qtwebengine-webenginewidgets-ma >>>>>> rk >>>>>> downeditor-example.html >>>>>> >>>>>> Regards >>>>>> >>>>>> Kai >>>>>> >>>>>> >>>>>>>>> Am 18.11.2015 um 10:12 schrieb Koehne Kai >>>>>>>> <kai.koe...@theqtcompany.com>: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> -----Original Message----- >>>>>>>>> From: Interest [mailto:interest-boun...@qt-project.org] On >>>>>>>>> Behalf Of NoRulez >>>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> What is the preferred way to handle web forms (iterate over it >>>>>>>>> like QWebCollection does in QWebKit), search for frames by name >>>>>>>>> and get notified when a frame is created? (Was a signal in >>>>>>>>> QWebKit) >>>>>>>> >>>>>>>> The general approach is to load/inject JavaScript into the page >>>>>>>> that takes care >>>>>>> of this, and communicates with the C++ world either by return >>>>>>> value, or QWebChannel. >>>>>>>> >>>>>>>> Hope this helps, >>>>>>>> >>>>>>>> Kai >>>>> _______________________________________________ >>>>> Interest mailing list >>>>> Interest@qt-project.org >>>>> http://lists.qt-project.org/mailman/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest