31

我一直在使用 HtmlUnit(开发人员做得很好)作为我以前的一些应用程序的无头浏览器,但是 javascript 支持不适用于我的下一个应用程序将访问的某些网站。

  1. 我听说了 Python 的 QtWebKit 绑定,但我的应用程序将使用 Java,或者是否有用于 WebKit 或 QtWebKit 的 Java 绑定?

  2. 有谁知道一个很好的无头浏览器,用于 Java,完全支持 javascript?

4

6 回答 6

10

Nathan Ridley 对另一个类似问题的回答是我迄今为止找到的最完整的回答。

无论如何,如果一切都失败了,您可以使用 Python 或 JS 替代方案,将其功能公开为服务器内部的 Web 服务,然后您的 Java 应用程序可以通过 Web 服务使用无头浏览器的功能。设置起来会很痛苦,但如果没有其他方法可以正常工作,它可能是一个可行的选择。

此外,还有一些用于 Java 的“非无头”浏览器包装器;也许可以根据要求围绕这些构建测试解决方案。

于 2013-07-01T13:28:52.230 回答
6

也许https://github.com/machinepublishers/jbrowserdriver - 它是无头的,仅用 Java 编写。

(披露:我是项目所有者)

于 2016-02-24T07:09:25.227 回答
4

Take a look at phantom.js. Based on webkit it offers a complete headless browser.

于 2012-07-24T16:00:13.067 回答
3

Rhino + env.js 是一个完整的 java 解决方案,我用过,它不是超级快但看起来相当稳定,应该给你正确的 js 支持。

于 2012-07-24T16:18:00.810 回答
1

回复一个旧线程,希望它可能对某些人有用。

1)你可以使用QTJambi的QWebView。它相当快。

2) JBrowserDriver 是另一种选择。

就个人而言,我发现 QT 引擎要快一些。

于 2017-01-21T06:15:13.563 回答
0

内置的 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

这种组合可能会对某人有所帮助。

于 2020-03-11T13:48:54.153 回答