将 WebView.evluateJavascript() 的返回值转换为 QWebElement (qt-jambi)

发布于 2024-11-15 05:05:41 字数 410 浏览 4 评论 0原文

以下 javascript 将在 google.com 上执行:

String js   =   "document.evaluate(\"//form[@name='f']\",
document, null, XPathResult.ANY_TYPE, null);";

现在,当找到表单时,我希望将其作为 QWebElement 返回到 Qt 中。例如:(

QWebElement element = (QWebElement)webView.page().mainFrame().evaluateJavaScript(js);

如果我使用 String 对象而不是 QWebElement,我知道上面的方法是有效的。)

任何想法都将受到高度赞赏!

The following javascript is to be executed on google.com:

String js   =   "document.evaluate(\"//form[@name='f']\",
document, null, XPathResult.ANY_TYPE, null);";

Now when the form is found, I would like to have it as a QWebElement back in Qt. E.g.:

QWebElement element = (QWebElement)webView.page().mainFrame().evaluateJavaScript(js);

(I know the above works if I was to use a String object instead of QWebElement. )

Any ideas are highly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

后知后觉 2024-11-22 05:05:41

我不知道这是否有效,由于某种原因我无法使用 QWebElement。
但这里有一个可以工作的片段:

String js = "document.getElementById('testID')";
Object obj = view.page().mainFrame().evaluateJavaScript(js);
QWebElement element = obj;

编辑:
如果它仍然不起作用,请尝试查看此代码返回的内容:

String js = "document.getElementById('testID')";
String output = view.page().mainFrame().evaluateJavaScript(js);
System.out.println(output);

希望它可以帮助您。

I have no idea if this is working, I can't use QWebElement for some reason.
But here is a snippet that could work:

String js = "document.getElementById('testID')";
Object obj = view.page().mainFrame().evaluateJavaScript(js);
QWebElement element = obj;

Edit:
If it still doesn't work try to see what it is returning with this code:

String js = "document.getElementById('testID')";
String output = view.page().mainFrame().evaluateJavaScript(js);
System.out.println(output);

Hope it can help you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文