Webelement click does not work
-
yes, already tried qDebug() << el.toPlainText();
and it works... -
oh no it doesn't work !
-
[ Qt ]
QWebElement el = webView->page()->mainFrame()->findFirstElement("#tool_open");
qDebug() << "WebElement : " + el.attribute("type");it works, el.plainText does not work for this kind of webelement
el.evaluateJavaScript("this.click()");
it does not work
-
el.plainText does not work for this kind of webelement
It works too. It will print the list's text.
Also for list click() works.
What are you trying to do on click ? Can you post you HTML code which doesnot work ? -
I try to simulate a webelement click thanks Qt.
In a web navigator the 'tool_open' click() opens an another web page (with javascript code...). I would like to do the same (simulate mouse clic) with Qt.
[ HTML ]
[ ... ]
<ul>
<li id="tool_clear">
<div></div>
Nouvelle Configuration
</li>
<li id="tool_open" >
<div id="fileinputs">
<div></div>
</div>
Open Image
</li>
</ul>
[ ... ] -
and yes the el.plainText works (I tried with an <input> HTML element instead of <li>...)
-
@fgdevel I dont see any code which gets invoked on click of
tool_open
. For eg . the following works i.ealert
is called<script> function click(){ alert("Clicked"); } </script> <li id="list" onclick="click()">Clickable list</li>
and from Qt
QWebElement b = ui->webView->page()->mainFrame()->findFirstElement("#list"); b.evaluateJavaScript("this.click()");
-
the action is realized by this function :
[ JS ]
var clickOpen = function() { [ ... ] }but I don't know how to call this function in HTML, just clickOpen() doesn't work, even if I include the JS file in the HTML (<script src="myfile.js"></script>)
-
@fgdevel Well then you need to first figure out how to call that function on click of
li
element in HTML. -
evaluateJavaScript is your friend
Exemple of code working with Jquery, replace with javascript code
QString jsToExecute += "$('#login-btn').click(); "; ui->webView_login->page()->mainFrame()->documentElement().evaluateJavaScript(jsToExecute + "; null" );