2014-05-18 2 views
0

Je suis en train de créer un bot automatisé pour aller sur un site web et faire des tâches répétitives. J'utilise JavaFX et WebEngine pour cela. Le problème est, cette page Web prend parfois beaucoup de temps à charger, et je n'ai pas nécessairement besoin de charger complètement. J'utilise un écouteur pour WebEngine, de sorte que lorsque le chargement est terminé, il poursuivra ses tâches, mais comme je l'ai dit, c'est un problème lorsque parfois il faut quelques minutes pour charger. Donc, ma question est la suivante: y a-t-il un moyen d'arrêter le chargement après un certain temps pour que l'auditeur dise à mon programme que le chargement est terminé?Comment arrêter WebEngine après un chargement trop long?

ici est mon interlocuteur:

  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(); 
       } 
      } 
     }); 

Répondre

0

Vous pouvez configurer le minuteur afin dire après 1 minute chargement de la page d'arrêt

Timer timer = new Timer(); 

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

C'est délicat, car j'utilise un auditeur. La seule façon de fonctionner est de pouvoir définir manuellement l'état du worker webengines sur SUCCEEDED après un certain temps, et j'ai regardé autour et je ne suis pas sûr que vous puissiez définir manuellement l'état du worker. – user3513071

Questions connexes