0

問題: 読み込まれたページのボタンをクリックします (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();

コンソール エラー:

java.lang.ClassCastException: com.sun.webpane.webkit.dom.HTMLButtonElementImpl は org.w3c.dom.html.HTMLInputElement にキャストできません

研究: ここのように Javascript の方法で試すことができます: https://stackoverflow.com/a/20458003/1112963

質問: JavaFX WebEngine のネイティブな方法で Web ページ ボタンをクリックする方法は?

4

2 に答える 2

0

これは、ドキュメント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()");
            }

ユーザーがページ上のボタンをクリックするか、webEngine コードから doClickInJava を呼び出すと、JavaButtonClicker の doSomething メソッドが呼び出されます。

于 2016-08-08T23:16:25.823 に答える