单击获救的 Javafx 元素的某种方法?
Some way to click a rescued Element of Javafx?
我试图点击一个没有 ID 的按钮,只有 class。因此,我不得不通过 xpath 获取元素,它有一个没有点击方法的 Element 对象。
有谁知道一些策略来实现点击这个元素?
这是我获取元素的代码:
WebView wv = new WebView();
WebEngine we = wv.getEngine();
we.load("https://www.milanuncios.com/");
we.getLoadWorker().stateProperty().addListener((observable, oldState, newState) -> {
if (newState == Worker.State.SUCCEEDED) {
Document doc = we.getDocument();
Element inputField = null;
try {
inputField =
(Element) XPathFactory.newInstance().newXPath().evaluate("//*[@class=\"ma-NavigationTopNav-mainActions-desktop\"]",
doc, XPathConstants.NODE);
} catch (XPathExpressionException e) {
e.printStackTrace();
}
if (inputField != null) {
LOGGER.log(Level.INFO, "DENTRO "+inputField);
}
}
});
processPaneField.getChildren().add(wv);
终于用js脚本解决了:
we.executeScript("document.getElementsByClassName('ma-NavigationTopNav-mainActions-desktop')[0].click()");
我试图点击一个没有 ID 的按钮,只有 class。因此,我不得不通过 xpath 获取元素,它有一个没有点击方法的 Element 对象。 有谁知道一些策略来实现点击这个元素?
这是我获取元素的代码:
WebView wv = new WebView();
WebEngine we = wv.getEngine();
we.load("https://www.milanuncios.com/");
we.getLoadWorker().stateProperty().addListener((observable, oldState, newState) -> {
if (newState == Worker.State.SUCCEEDED) {
Document doc = we.getDocument();
Element inputField = null;
try {
inputField =
(Element) XPathFactory.newInstance().newXPath().evaluate("//*[@class=\"ma-NavigationTopNav-mainActions-desktop\"]",
doc, XPathConstants.NODE);
} catch (XPathExpressionException e) {
e.printStackTrace();
}
if (inputField != null) {
LOGGER.log(Level.INFO, "DENTRO "+inputField);
}
}
});
processPaneField.getChildren().add(wv);
终于用js脚本解决了:
we.executeScript("document.getElementsByClassName('ma-NavigationTopNav-mainActions-desktop')[0].click()");