我有一个文本字段,我需要提供Xpath并单击提交按钮。它必须突出显示下面webview中的相应元素(假设网站已加载)。这是我的代码。
webEngine.executeScript(
"var elems = document.body.getElementsByTagName(\"*\");"+
"for (i = 0; i < elems.length; i++) {"+
"elems[i].style.backgroundColor = \"\";"+
"}"+
"var element = document.evaluate( bridge.getXpath() ,document.body, null, XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue;"+
"clickController.printId(element, bridge.getXpath());"+
"if (element != null) {"+
"element.style.backgroundColor = \"#FDFF47\";"+
"}");
document.evaluate()方法计算给定的xPath表达式(bridge.getXpath()返回xPath值)。如果我给出正确的Xpath值,它将正确突出显示该元素。 但是,如果Xpath不正确,则JavaFX浏览器崩溃。在UI中,“Java SE已停止工作”弹出窗口将出现并要求我关闭该程序。在后端控制台中,我收到“发生了不可恢复的堆栈溢出。”
有没有人遇到过这个问题?请分享想法。
编辑: 刚发现问题出在JDK1.7上。在JDK1.8中,它可以正常工作。 1.7中是否有解决方法?