web-dev-qa-db-ja.com

java

以前のアプリケーションの一部でヘッドレスブラウザとしてHtmlUnit(開発者は素晴らしい仕事をした)を使用していますが、次のアプリケーションがアクセスする一部のWebサイトではJavaScriptサポートが機能していません。

  1. PythonのQtWebKitバインディングについて聞いたが、私のアプリケーションはJavaまたはWebKitのJavaバインディングがあるか、 QtWebKit?

  2. 誰かがJavaの完全なjavascriptサポート付きの優れたヘッドレスブラウザを知っていますか?

28
John

Nathan Ridleyの別の同様の質問への回答 は、これまでに見つけた中で最も完全なものです。

とにかく、すべてが失敗した場合は、PythonまたはJSの代替手段を使用し、その機能をサーバー内のWebサービスとして公開してから、Javaアプリケーションで使用できます。ヘッドレスブラウザーのWebサービスを介した機能性。

また、 Java用の「ヘッドレスではない」ブラウザラッパーがいくつかあります ;要件に応じて、それらの周りにテストソリューションを構築することが可能かもしれません。

5
Haroldo_OK

phantom.js を見てください。 Webkitに基づいて、完全なヘッドレスブラウザーを提供します。

4
Sirko

Rhino + env.jsは完全なJava=ソリューションです。私はそれを使用しました。超高速ではありませんが、かなり安定しているようで、適切なjsサポートを提供するはずです。

3
Simone Gianni

おそらく https://github.com/machinepublishers/jbrowserdriver -ヘッドレスであり、Javaでのみ記述されています。

(開示:私はプロジェクトオーナーです)

2
Dan

チェックアウト zombie.js 。私の経験からすごく速い

1
Frank Visaggio

古いスレッドで返信して、一部のユーザーに役立つことを期待しています。

1)QTJambiのQWebViewを使用できます。それはかなり高速でした。

2)JBrowserDriverは別のオプションです。

個人的には、QTエンジンが少し速いことがわかりました。

組み込みのWebViewはどうでしょうか。 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

組み合わせは誰かを助けるかもしれません。

0