有沒有辦法獲取加載到javafx webview中的頁面的不同輸入/ href/div的xpath?如何在javafx和webview中創建或獲取輸入的xpath
例如: 我希望能夠加載google.com搜索框 點擊搜索框 回報的XPath的System.out。
有沒有辦法獲取加載到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