Also lassen Sie uns sagen, ich versuche, einen Link in der QWebView zu klicken, hier ist das, was ich habe:Qt: Kraft QWebView auf einem Web-Element klicken, auch ein nicht sichtbar auf dem Fenster
// extending QWebView
void MyWebView::click(const QString &selectorQuery)
{
QWebElement el = this->page()->mainFrame()->findFirstElement(selectorQuery);
if (!el)
return;
el.setFocus();
QMouseEvent pressEvent(QMouseEvent::MouseButtonPress, el.geometry().center(),
Qt::MouseButton::LeftButton, Qt::LeftButton, Qt::NoModifier);
QCoreApplication::sendEvent(this, &pressEvent);
QMouseEvent releaseEvent(QMouseEvent::MouseButtonRelease,
el.geometry().center(), Qt::MouseButton::LeftButton,
Qt::LeftButton, Qt::NoModifier);
QCoreApplication::sendEvent(this, &releaseEvent);
}
Und Sie nennen es wie so:
myWebView->click("a[href]"); // will click first link on page
myWebView->click("input[type=submit]"); // submits a form
das Problem ist nur: , wenn das Element nicht im Fenster sichtbar ist, ist es unmöglich zu klicken. Was ich meine ist, wenn Sie nach unten scrollen müssen, um es zu sehen, können Sie nicht darauf klicken. Ich stelle mir vor, dass dies mit der Geometrie zu tun hat, da das Element nicht auf dem Bildschirm angezeigt wird, kann es nicht richtig berechnet werden.
Irgendwelche Ideen, um das zu umgehen? Vielleicht eine Möglichkeit, das Fenster sich wie eine Milliarde x Milliarden Pixel zu verhalten, aber immer noch 200x200 aussehen?
OK Antwort, kann eine Erklärung sein? – quantum