一、C++实现
QWebFrame* frame = webView()->page()->currentFrame();
if (frame!=NULL){
QWebElementCollection collection1 = frame->findAllElements(“input[name=submit]”);
foreach (QWebElement element, collection1){
QPoint poss(element.geometry().center());
QPoint pos = this->topLevelWidget()->mapToGlobal(QPoint(0,0));
QMouseEvent event0(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QApplication::sendEvent(webView->page(), &event0);
QMouseEvent event1(QEvent::MouseButtonRelease, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QApplication::sendEvent(webView->page(), &event1);
}
}
这种方法对于纯HTML的网页有效,但是javascript实现提交功能的网页不一定有效。
二、javascript实现
调用
evaluateJavaScript(code);
三、两者结合实现
QWebFrame* frame = webView()->page()->currentFrame();
if (frame!=NULL) {
QWebElementCollection collection1 = frame->findAllElements(“input[name=submit]”);
foreach (QWebElement element, collection1){
element.evaluateJavaScript(this.click(););
}
}