Quantcast
Channel: Qt DevNet forums: Qt WebKit
Viewing all articles
Browse latest Browse all 542

Simulating iput type="file" process

$
0
0
Hi all, I have a webpage where I have an input type=“file” section to upload selected images from the computer. So, as you know, user clicks on the button and a dialog box opens to select the images from the computer and whenever user presses ok button on the dialog box the image is uploaded to a certain location. I have a QWebView to load the page and I can simulate the button click already. However, I couldn’t figure out how I can fill the opened dialog box. I tried to use keyboard events but couldn’t get it working as well. Could anyone guide me a bit? My target html line is the following: <input id="fileupload" type="file" name="files[]" data-url="/server/images/e1b2d17b7b7eccef21a0a0ba1756d35c/upload/" multiple=""> My code to trigger the user click where element is the element.findFirst(“input[id=‘fileupload’]”);     QRect elGeom=element.geometry();     QPoint elPoint=elGeom.center();     int elX=elPoint.x();     int elY=elPoint.y();     int webWidth=ui->webView->width();     int webHeight=ui->webView->height();     int pixelsToScrolRight=0;     int pixelsToScrolDown=0;     if (elX>webWidth) pixelsToScrolRight=elX-webWidth+elGeom.width()/2+10; //the +10 part if for the page to scroll a bit further     if (elY>webHeight) pixelsToScrolDown=elY-webHeight+elGeom.height()/2+10; //the +10 part if for the page to scroll a bit further     ui->webView->page()->mainFrame()->setScrollBarValue(Qt::Horizontal,pixelsToScrolRight);     ui->webView->page()->mainFrame()->setScrollBarValue(Qt::Vertical,pixelsToScrolDown);     QPoint pointToClick(elX-pixelsToScrolRight,elY-pixelsToScrolDown);       QMouseEvent pressEvent(QMouseEvent::MouseButtonPress,pointToClick,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);     QCoreApplication::sendEvent(ui->webView, &pressEvent);     QMouseEvent releaseEvent(QMouseEvent::MouseButtonRelease,pointToClick,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);     QCoreApplication::sendEvent(ui->webView, &releaseEvent); Thanks a lot.

Viewing all articles
Browse latest Browse all 542

Trending Articles