WebEngine をヘッドレス ブラウザとして使用しようとしています。これは、Java の公式ドキュメント の例を厳密に模倣した概念実証です。
import javafx.scene.web.*;
import javafx.application.*;
import javafx.stage.*;
import javafx.concurrent.Worker.*;
import javafx.beans.value.*;
public class WebEngineTest extends Application {
public void start(Stage s) {
WebEngine we = new WebEngine();
//Print state changes as they happen;
//Should go READY -> SCHEDULED -> RUNNING -> SUCCEEDED
we.getLoadWorker().stateProperty().addListener(
new ChangeListener<State>() {
public void changed(ObservableValue ov, State oldState, State newState) {
System.out.println(oldState + " -> " + newState);
}
});
//Hit some website
we.load("http://javafx.com");
}
public static void main(String[] args) {
launch(args);
}
}
出力:
READY -> SCHEDULED
SCHEDULED -> RUNNING
SUCCEEDED はヒットすることも、エラー状態になることもありません。(予想される動作: タスクは最終的に SUCCEEDED 状態または何らかのエラー状態で終了する必要があります。)