gpt4 book ai didi

javascript - 如何通过 QWebEngine 在网页的输入文本字段中填写文本(来自 C++)?

转载 作者:行者123 更新时间:2023-11-29 17:58:00 27 4
gpt4 key购买 nike

我想在 QWebEngine 中包装一个网站,这样我就可以使用 Qt 的事件过滤器等等来调整输入命令。有问题的网站需要用户名/电子邮件和密码,我想确保我可以处理该文本的输入,发送要在网页上填写的字符串,然后以编程方式按下登录按钮同一页。

我找到了 this page ,建议使用 QWebChannel 和一些自定义 javascript 来实现此功能。我知道如何通过 Firefox 的 Web Inspector 工具获取我要填写的元素的信息,但我不知道如何获取

  1. 将两个字符串传递给自定义 JS 代码,我将以某种方式通过 QWebChannel 运行

  2. 实际编写 JS 代码以在不受我控制的网站上查找特定元素

没有 url 参数或类似参数,如果我查看当我在浏览器中实际按下“登录”时发送的 POST 请求是什么样的,信息以某种方式编码,因此复制实际发送的数据在这一点上似乎不可行。

最佳答案

在我的登录页面中,我有两个变量:用户名、用户密码。您可以使用 runJavaScript 表单 QWebEnginePage 来评估您的 js:

 ui->webView->page()->runJavaScript(QString("document.getElementById('username').value = '%1'").arg("example"));
ui->webView->page()->runJavaScript(QString("document.getElementById('password').value = '%1'").arg("example"));

要获取用户插入的文本,您可以使用:

ui->webView->page()->runJavaScript(QString("document.getElementById('username').value"),
[this](const QVariant& res) {
qDebug() << "Username = " << res.toString();
});

现在,只需调用您的登录按钮并模拟点击事件、发布事件....

ui->webView->page()->runJavaScript(QString("document.getElementById("%1").click()).arg("example"));

我用它来自动登录我的页面以获取 session token 或 cookie。

关于javascript - 如何通过 QWebEngine 在网页的输入文本字段中填写文本(来自 C++)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37397155/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com