支持java的完全javascript的无头浏览器

支持java的完全javascript的无头浏览器,java,webkit,qtwebkit,headless,headless-browser,Java,Webkit,Qtwebkit,Headless,Headless Browser,我在以前的一些应用程序中一直使用HtmlUnit(开发人员做得很好)作为无头浏览器,但javascript支持对于我的下一个应用程序将访问的某些网站不起作用 我听说了用于Python的QtWebKit绑定,但我的应用程序将使用Java,或者是否有用于WebKit或QtWebKit的Java绑定 有人知道一个好的无头Java浏览器,它完全支持javascript吗 看一看。基于webkit,它提供了一个完整的无头浏览器。Rhino+env.js是一个完整的java解决方案,我使用过它,它速度不太快

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

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

  • 有人知道一个好的无头Java浏览器,它完全支持javascript吗


  • 看一看。基于webkit,它提供了一个完整的无头浏览器。

    Rhino+env.js是一个完整的java解决方案,我使用过它,它速度不太快,但看起来相当稳定,应该可以为您提供正确的js支持。

    是迄今为止我发现的最完整的一个

    无论如何,如果一切都失败了,您可以使用Python或JS替代方案,在您的服务器中将其功能公开为Web服务,然后您的Java应用程序可以通过Web服务使用headless浏览器的功能。这将是一个痛苦的设置,但它可能是一个可行的替代方案,如果没有其他工作如所愿

    也,;也许可以根据需求围绕这些问题构建一个测试解决方案。

    也许——它是无头的,并且只用Java编写


    (披露:我是项目负责人)

    回复一个老帖子,希望它对一些人有用

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

    2) JBrowserDriver是另一个选项


    就我个人而言,我发现QT引擎快了一点。

    内置的webview怎么样。我不确定是否完全支持JS,但快速查看一下网站,就会发现它可以支持javascript

    JavaFXWebView:


    private static void initWebView(Stage primaryStage){
    setTitle(“JavaFXWebView示例”);
    WebView WebView=新建WebView();
    //webView.getEngine().load(“http://localhost:9009");
    webView.getEngine().loadContent(“JavaFXWebView,HelloWorlddocument.getElementById('aa')。innerHTML='TEST');
    webView.getEngine().setJavaScriptEnabled(true);
    VBox VBox=新的VBox(webView);
    场景=新场景(vBox,960600);
    初级阶段。场景(场景);
    primaryStage.show();
    }
    

    和这个问题无关,但也看看这个:或者


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

    QtWebKit是否有Java绑定?或者我也有类似的情况。我使用HTMLUnit,但是一些网站上的JS不能使用它。您是否找到了一个可行的替代方案?显然没有人提供解决方案,因为没有一个是Javabased@John.which您在java应用程序中使用了headless浏览器。我目前也在为我的一个项目使用JBrowserDriver–我完全可以推荐它。
         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();
        }