我一直在使用 HtmlUnit(开发人员做得很好)作为我以前的一些应用程序的无头浏览器,但是 javascript 支持不适用于我的下一个应用程序将访问的某些网站。
我听说了 Python 的 QtWebKit 绑定,但我的应用程序将使用 Java,或者是否有用于 WebKit 或 QtWebKit 的 Java 绑定?
有谁知道一个很好的无头浏览器,用于 Java,完全支持 javascript?
我一直在使用 HtmlUnit(开发人员做得很好)作为我以前的一些应用程序的无头浏览器,但是 javascript 支持不适用于我的下一个应用程序将访问的某些网站。
我听说了 Python 的 QtWebKit 绑定,但我的应用程序将使用 Java,或者是否有用于 WebKit 或 QtWebKit 的 Java 绑定?
有谁知道一个很好的无头浏览器,用于 Java,完全支持 javascript?
Nathan Ridley 对另一个类似问题的回答是我迄今为止找到的最完整的回答。
无论如何,如果一切都失败了,您可以使用 Python 或 JS 替代方案,将其功能公开为服务器内部的 Web 服务,然后您的 Java 应用程序可以通过 Web 服务使用无头浏览器的功能。设置起来会很痛苦,但如果没有其他方法可以正常工作,它可能是一个可行的选择。
此外,还有一些用于 Java 的“非无头”浏览器包装器;也许可以根据要求围绕这些构建测试解决方案。
也许https://github.com/machinepublishers/jbrowserdriver - 它是无头的,仅用 Java 编写。
(披露:我是项目所有者)
Take a look at phantom.js. Based on webkit it offers a complete headless browser.
Rhino + env.js 是一个完整的 java 解决方案,我用过,它不是超级快但看起来相当稳定,应该给你正确的 js 支持。
回复一个旧线程,希望它可能对某些人有用。
1)你可以使用QTJambi的QWebView。它相当快。
2) JBrowserDriver 是另一种选择。
就个人而言,我发现 QT 引擎要快一些。
内置的 webview 怎么样。我不确定是否完全支持 JS,但在网站上的快速检查表明它可以支持 javascript。
JavaFX 网络视图:JFX 网络视图
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 or NanoHttpd
这种组合可能会对某人有所帮助。