2023-02-16 339
我正在工作一个可以自动化到某些站点的Javafx webbrowser,我知道如何将数据设置为用户名和密码字段,但是如何使其使其执行登录按钮单击?
这就是我到目前为止得到的:
String email = "document.getElementsByName('email')[0].value='MY_EMAIL';";
String pass = "document.getElementsByName('pass')[0].value='MY_PASSWORD';";
String login = "";
webEngine.executeScript(email);
webEngine.executeScript(pass);
webEngine.executeScript(login);
这是该按钮的JavaScript代码,应该单击:
<label class="uiButton uiButtonConfirm" id="loginbutton" for="u_0_c"><input value="Aanmelden" tabindex="4" type="submit" id="u_0_c"></label>
这是一个集中的,非专业的示例…使用dom.w3c.node.* package
HTMLInputElement element = (HTMLInputElement)myWebView.getEngine().getDocument().getElementsByTagName("input").item(0);
element.click();
找到一种处理您要寻找的对象的方法,它将起作用.
我没有尝试过,但是它应该起作用.这个想法是将jQuery添加到加载页面,然后使用它单击按钮.这篇文章解释了如何使用JS:我如何添加jQuery用JavaScript?因此,使用Java(我已经将第一个答案复制到字符串中并使用Web引擎执行):
String script = "script = document.createElement('script');\n" +
"\n" +
"script.onload = function() {\n" +
" // jQuery is available now\n" +
"};\n" +
"var head = document.getElementsByTagName(\"head\")[0];\n" +
"\n" +
"script.type = 'text/javascript';\n" +
"script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';\n" +
"\n" +
"head.appendChild(script);";
webEngine.executeScript(script);
初始化WebView(通过webEngine.getLoadWorker().stateProperty().addListener(…))时,应正确完成此操作.注意:jQuery是异步加载的.
现在您应该可以单击使用jQuery的按钮:
webEngine.executeScript("$('#buttonId')[0].click()");
这篇文章应帮助您在网络浏览中调试JS: javafx/webview/webengine firebuglite或其他一些调试器?
以上所述是小编给大家介绍的自动单击JavaFx WebView中的按钮,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33845.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态