我之前使用了HtmlUnit(开发者做得很好),作为一些应用程序的无头浏览器,但是在我的下一个应用程序要访问的某些网站中,它的javascript支持不起作用。
我听说Python有QtWebKit绑定,但我的应用程序将使用Java,或者是否有Java绑定Webkit或QtWebKit?
是否有人知道一个拥有完整javascript支持的适用于Java的好的无头浏览器?
我之前使用了HtmlUnit(开发者做得很好),作为一些应用程序的无头浏览器,但是在我的下一个应用程序要访问的某些网站中,它的javascript支持不起作用。
我听说Python有QtWebKit绑定,但我的应用程序将使用Java,或者是否有Java绑定Webkit或QtWebKit?
是否有人知道一个拥有完整javascript支持的适用于Java的好的无头浏览器?
Nathan Ridley在另一个类似问题的回答是我目前找到的最完整的答案。
无论如何,如果一切都失败了,您可以使用Python或JS替代方案,在服务器内部将其功能暴露为Web服务,然后您的Java应用程序可以通过WebService使用无头浏览器的功能。虽然设置过程很麻烦,但如果没有其他可行的方法,则可能是一种可行的替代方案。
此外,Java有一些“非无头”浏览器包装程序,根据要求,也许可以构建一个测试解决方案。
回复一个旧帖子,希望对某些人有用。
1) 您可以使用QTJambi的QWebView。它相当快。
2) JBrowserDriver是另一个选项。
个人认为QT引擎稍微快一些。
内置Web视图怎么样?我不确定是否支持完整的JS,但是网站上的快速检查显示它可以支持JavaScript。
JavaFX WebView: JFX WebView
private static void initWebView(Stage primaryStage) {
primaryStage.setTitle("JavaFX WebView Example");
WebView webView = new WebView();
//webView.getEngine().load("http://localhost:9009");
webView.getEngine().loadContent("<h3 id='aa'>JAVA FX WebView, HelloWorld</h3><script>document.getElementById('aa').innerHTML='TEST'</script>");
webView.getEngine().setJavaScriptEnabled(true);
VBox vBox = new VBox(webView);
Scene scene = new Scene(vBox, 960, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
虽然与问题无关,但也可以看看这个:Java-Express 或 NanoHttpd
这个组合可能会对某些人有所帮助。