Java 加载时间过长后如何停止WebEngine?

Java 加载时间过长后如何停止WebEngine?,java,web,javafx,javafx-webengine,Java,Web,Javafx,Javafx Webengine,我目前正在创建一个自动机器人进入某个网站并执行重复任务。我正在使用JavaFX和WebEngine来实现这一点。问题是,这个网页有时需要很长时间才能加载,我不一定需要完全加载 我正在为WebEngine使用一个侦听器,这样当加载完成时,它将继续执行它的任务,但正如我所说的,有时加载需要几分钟的时间,这是一个问题 所以我的问题是,有没有办法在一段时间后停止加载,以便侦听器告诉我的程序加载已完成?这是我的听众: webEngine.getLoadWorker().stateProperty().ad

我目前正在创建一个自动机器人进入某个网站并执行重复任务。我正在使用JavaFX和WebEngine来实现这一点。问题是,这个网页有时需要很长时间才能加载,我不一定需要完全加载

我正在为WebEngine使用一个侦听器,这样当加载完成时,它将继续执行它的任务,但正如我所说的,有时加载需要几分钟的时间,这是一个问题

所以我的问题是,有没有办法在一段时间后停止加载,以便侦听器告诉我的程序加载已完成?这是我的听众:

webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
    @Override
    public void changed(ObservableValue<? extends Worker.State> observableValue, 
            Worker.State oldState, Worker.State newState) {

        if (newState == Worker.State.SUCCEEDED) {
            loaded = true;
            System.out.println("true");
            start();
        }
    }
});
webEngine.getLoadWorker().stateProperty().addListener(新的ChangeListener()){
@凌驾

public void已更改(observeValue您可以设置计时器,即在1分钟后停止加载页面

Timer timer = new Timer();

timer.schedule(new TimerTask() {
  @Override
  public void run() {
    // Stop loading page
  }
}, 60*1000);

这很棘手,因为我使用的是侦听器。唯一可行的方法是,如果我可以在一定时间后手动将webengines工作状态设置为Successed(成功),我环顾四周,不确定您是否可以手动设置工作状态。