使用 C++ QString 值自动填充 HTML 输入字段
Auto-filling the HTML input field with a C++ QString value
我在 QWebEnginePage 上找到 'Sign in'
文本,如果显示正确的页面,然后在输入字段中自动填写 emailId。
emailId 的值基本上是一个 QString。
QString emailId = "abc@xyz.com";
我现在得到的是以下内容,当加载正确的页面时,输入字段被跟踪,但实际问题是设置 value = abc@xyz.com
。有没有办法将输入的值设置为等于 QString 值。
(我不想对值进行硬编码)。
ui->webEngineView->page()->findText(QStringLiteral("Sign in"), QWebEnginePage::FindFlags(), [this](bool found) {
if (found) {
QString code = QStringLiteral("document.querySelectorAll('input')[0].value = emailId");
ui->webEngineView->page()->runJavaScript(code);
}
});
根据@eyllanesc 的评论,以下对我有用:
QString code = QString("document.querySelectorAll('input')[0].value = '%1'").arg(emailId);
我在 QWebEnginePage 上找到 'Sign in'
文本,如果显示正确的页面,然后在输入字段中自动填写 emailId。
emailId 的值基本上是一个 QString。
QString emailId = "abc@xyz.com";
我现在得到的是以下内容,当加载正确的页面时,输入字段被跟踪,但实际问题是设置 value = abc@xyz.com
。有没有办法将输入的值设置为等于 QString 值。
(我不想对值进行硬编码)。
ui->webEngineView->page()->findText(QStringLiteral("Sign in"), QWebEnginePage::FindFlags(), [this](bool found) {
if (found) {
QString code = QStringLiteral("document.querySelectorAll('input')[0].value = emailId");
ui->webEngineView->page()->runJavaScript(code);
}
});
根据@eyllanesc 的评论,以下对我有用:
QString code = QString("document.querySelectorAll('input')[0].value = '%1'").arg(emailId);