问题:单击加载页面上的按钮(通过JavaFX WebEngine)。按钮是
<button class="flat_button popup_login_btn button_big" id="install_allow" type="submit" onclick="return login(this)">Button</button>在Java中:
HTMLInputElement confirmButton =
(HTMLInputElement) document.getElementsByTagName("button").item(0);
confirmButton.click();控制台错误:
com.sun.webpane.webkit.dom.HTMLButtonElementImpl不能转换为org.w3c.dom.html.HTMLInputElement
研究:我可以试试Javascript的方式,就像这里:https://stackoverflow.com/a/20458003/1112963
如何点击一个网页按钮,一个本机 JavaFX WebEngine?
发布于 2016-08-08 23:16:25
您可以按照文档https://docs.oracle.com/javafx/2/api/javafx/scene/web/WebEngine.html中“从JavaScript回调到Java”一节中所述的方式来完成这一任务。
在您的webEngine类中创建这个类:
public class JavaButtonClicker {
public void doSomething() {
JOptionPane.showMessageDialog(null,
"Click Sound");
}}将这一行放在html中:
<button onclick="clicker.doSomething()">Click here to make sound</button>创建一个在java中执行单击的方法:
private void doClickInJava() {
JSObject window = (JSObject) webEngine. executeScript("window");
window.setMember("clicker",
new JavaButtonClicker());
webEngine.executeScript("clicker.doSomething()");
}现在,当用户单击页面上的按钮或从doClickInJava代码调用webEngine时,它将调用JavaButtonClicker中的doSomething方法。
发布于 2018-12-19 16:32:19
HTMLInputElementImpl confirmButton =
(HTMLInputElementImpl) document.getElementsByTagName("button").item(0);
confirmButton.click();使用HTMLInputElementImpl而不是HTMLinputElement
https://stackoverflow.com/questions/38772948
复制相似问题