如何在javafx和webview中创建或获取输入的xpath
问题描述:
有没有办法获取加载到javafx webview中的页面的不同输入/ href/div的xpath?如何在javafx和webview中创建或获取输入的xpath
例如: 我希望能够加载google.com搜索框 点击搜索框 回报的XPath的System.out。
答
那么我没有一个工作的例子,但我可以给你你需要的所有必要的后方。我也多次使用这几次在Java和Javascript之间进行通信。接下来会发生的是,您指定了一个Java类,它将被注入到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端可以调用先前注入的对象的回调函数由
function myCallback(value){
jsCallBack.callback(value);
}
你需要做的下一件事是指定在Javascript监听器,监听鼠标事件。已经有一个existing post,它可以解决单击元素组装xpath的问题。组装后,只需将结果传递给回调函数。在this blog上,您还可以找到JavaFx和Javascrit之间通过回调进行通信的示例。
因此,我只有从JS传递String
到Java的经验,它完美的工作,我不知道它是否适用于不同类型的对象。
我可以知道什么是xpath? –
XPath是XML路径语言,是一种用于从XML文档中选择节点的查询语言。 google.com搜索框的xpath是// * [@ id =“lst-ib”] – Andy
等等,你想加载谷歌,你想单击搜索框,获取xpath(对于搜索框?)并将该xpath放入搜索框?你能为我解答这个问题吗? – jagdpanzer