gpt4 book ai didi

java - 如何在javafx和webview中创建或获取输入的xpath

转载 作者:行者123 更新时间:2023-12-01 11:05:41 25 4
gpt4 key购买 nike

有没有办法获取 javafx webview 中加载的页面的不同 input/href/div 的 xpath?

例如:我希望能够加载 google.com单击搜索框返回system.out中搜索框的xpath。

最佳答案

好吧,我没有一个有效的例子,但我可以为你提供你需要的所有必要的信息。我也多次使用它来在 Java 和 Javascript 之间进行通信。接下来发生的事情是,您指定一个 Java 类,该类将被注入(inject)到 Javascript 部分中,并且充当两种语言之间的桥梁。首先,您需要一个回调类,每当您想要将某些内容从 JavaScript 端传递到 Java 时就会调用该回调类

import netscape.javascript.JSObject;

JSObject window = (JSObject) webView.getEngine().executeScript("window");
window.setMember("jsCallBack", new JSCallBack());

回调类至少需要一个可以从 Javascript 端调用的方法。在本例中,它是 callback() 方法

public final class JSCallBack {

public JSCallBack() {}

public void callback(final String response) {
System.out.println(response) ; // this is the String which you passed on the JS side
}
}

现在可以从 Javascript 端调用 callback() 方法,并且还可以传递参数。

在Javascript端,您可以通过以下方式调用先前注入(inject)对象的回调函数

function myCallback(value){
jsCallBack.callback(value);
}

接下来您需要做的是在 Javascript 中指定一个监听器,用于监听鼠标事件。已经有一个 existing post它解决了为点击的元素组装 xpath 的问题。组装后,您只需将结果传递给回调即可。上this blog您还可以找到一个通过回调在 JavaFx 和 Javascrit 之间进行通信的示例。

所以我只有将 String 从 JS 传递到 Java 的经验,它工作得很好,我不知道它是否适用于不同类型的对象。

关于java - 如何在javafx和webview中创建或获取输入的xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32976542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com