首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX WebEngine按钮单击

JavaFX WebEngine按钮单击
EN

Stack Overflow用户
提问于 2016-08-04 16:37:38
回答 2查看 2.1K关注 0票数 0

问题:单击加载页面上的按钮(通过JavaFX WebEngine)。按钮是

代码语言:javascript
复制
<button class="flat_button popup_login_btn button_big" id="install_allow" type="submit" onclick="return login(this)">Button</button>

在Java中:

代码语言:javascript
复制
  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?

EN

回答 2

Stack Overflow用户

发布于 2016-08-08 23:16:25

您可以按照文档https://docs.oracle.com/javafx/2/api/javafx/scene/web/WebEngine.html中“从JavaScript回调到Java”一节中所述的方式来完成这一任务。

在您的webEngine类中创建这个类:

代码语言:javascript
复制
public class JavaButtonClicker {
    public void doSomething() {
        JOptionPane.showMessageDialog(null,
                                      "Click Sound");
    }}

将这一行放在html中:

代码语言:javascript
复制
<button  onclick="clicker.doSomething()">Click here to make sound</button>

创建一个在java中执行单击的方法:

代码语言:javascript
复制
private void doClickInJava() {
JSObject window = (JSObject) webEngine. executeScript("window");              
                window.setMember("clicker",
                                 new JavaButtonClicker());
                webEngine.executeScript("clicker.doSomething()");
            }

现在,当用户单击页面上的按钮或从doClickInJava代码调用webEngine时,它将调用JavaButtonClicker中的doSomething方法。

票数 0
EN

Stack Overflow用户

发布于 2018-12-19 16:32:19

代码语言:javascript
复制
    HTMLInputElementImpl confirmButton =
    (HTMLInputElementImpl) document.getElementsByTagName("button").item(0);
    confirmButton.click();

使用HTMLInputElementImpl而不是HTMLinputElement

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38772948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档