在 qwebview qt 中使用 qwebelement 进行假点击
Fake click with qwebelement at qwebview qt
我想在 qwebview 中用 qwebelement 模拟假点击。
我有一个适用于登录的答案,但这里没有任何反应:
<input type='hidden' name='name' value='0'> <button id="id0" type="submit" class="btn btn-primary">Show List</button>
我的函数:
int WebView::clickButton(QString inputName /* input[name=button] */ )
{
QWebElement document = this->page()->mainFrame()->documentElement();
QWebElement button = document.findFirst(inputName);
if (button.isNull()) {
std::cout << "[2K\r" << " => Error: Button could not be found" << std::endl;
return 1;
}
button.evaluateJavaScript("this.click()");
return 0;
}
我测试它:
clickButton("input[name=configcaptcha]");
clickButton("input[id=gethoster]");
clickButton("input[type=submit]");
clickButton("input[class=btn btn-primary]");
但是要么找不到按钮,要么没有任何反应。
qDebug() << "evaluate keyUp script" << webEle.tagName() << webEle.toPlainText();
qDebug() << webEle.evaluateJavaScript( QString("this.keydown()") );
qDebug() << webEle.evaluateJavaScript( QString("this.keypress()") );
qDebug() << webEle.evaluateJavaScript( QString("this.keyup()") );
qDebug() << webEle.evaluateJavaScript( QString("keyup()") );
qDebug() << webEle.evaluateJavaScript( QString("onkeyup()") );
qDebug() << webEle.evaluateJavaScript( QString("this.click()") );
qDebug() << webEle.evaluateJavaScript( QString("click()") );
qDebug() << webEle.evaluateJavaScript( QString("var evObj = document.createEvent('MouseEvents');evObj.initEvent( 'click', true, true );dispatchEvent(evObj);") );
qDebug() << webEle.evaluateJavaScript( QString("var evObj = document.createEvent(\"KeyboardEvents\");evObj.initEvent( \"keypress\", true, true, null, false, false, false, false, 115, 0 );dispatchEvent(evObj);") );
https://www.qtcentre.org/threads/39515-QWebElement-evaluateJavaScript-problem
我想在 qwebview 中用 qwebelement 模拟假点击。 我有一个适用于登录的答案,但这里没有任何反应:
<input type='hidden' name='name' value='0'> <button id="id0" type="submit" class="btn btn-primary">Show List</button>
我的函数:
int WebView::clickButton(QString inputName /* input[name=button] */ )
{
QWebElement document = this->page()->mainFrame()->documentElement();
QWebElement button = document.findFirst(inputName);
if (button.isNull()) {
std::cout << "[2K\r" << " => Error: Button could not be found" << std::endl;
return 1;
}
button.evaluateJavaScript("this.click()");
return 0;
}
我测试它:
clickButton("input[name=configcaptcha]");
clickButton("input[id=gethoster]");
clickButton("input[type=submit]");
clickButton("input[class=btn btn-primary]");
但是要么找不到按钮,要么没有任何反应。
qDebug() << "evaluate keyUp script" << webEle.tagName() << webEle.toPlainText();
qDebug() << webEle.evaluateJavaScript( QString("this.keydown()") );
qDebug() << webEle.evaluateJavaScript( QString("this.keypress()") );
qDebug() << webEle.evaluateJavaScript( QString("this.keyup()") );
qDebug() << webEle.evaluateJavaScript( QString("keyup()") );
qDebug() << webEle.evaluateJavaScript( QString("onkeyup()") );
qDebug() << webEle.evaluateJavaScript( QString("this.click()") );
qDebug() << webEle.evaluateJavaScript( QString("click()") );
qDebug() << webEle.evaluateJavaScript( QString("var evObj = document.createEvent('MouseEvents');evObj.initEvent( 'click', true, true );dispatchEvent(evObj);") );
qDebug() << webEle.evaluateJavaScript( QString("var evObj = document.createEvent(\"KeyboardEvents\");evObj.initEvent( \"keypress\", true, true, null, false, false, false, false, 115, 0 );dispatchEvent(evObj);") );
https://www.qtcentre.org/threads/39515-QWebElement-evaluateJavaScript-problem