QT 操作记录,待实践

一、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();");
        }
    }


 

posted on 2014-09-28 07:32  Eaglezzb  阅读(147)  评论(0编辑  收藏  举报

导航