我正在用java开发一个机器人,我需要它定期加载一个网页及其所有的javascript计算。为此,我使用ScheduledExecutorService和JavaFX WebEngine。我的预定服务运行良好,已经过日志测试,但是一旦我用WebEngine添加页面加载,它突然停止了预定的服务......
在服务之前,我正在使用不同的WebEngine对象来获取其中使用的URL。那段代码打印出来“执行!”一次又停下来。但如果我用“engine.load(...”删除该行,则每隔5秒执行一次打印
以下是我服务的代码:
ScheduledExecutorService updateService = Executors.newScheduledThreadPool(5);
WebEngine engine = this.updateEngine;
ScheduledFuture scheduledFuture =
updateService.scheduleWithFixedDelay(new Runnable(){
@Override
public void run() {
System.out.println("Executed!");
Maj job = jobsCycle.getNextMaj();
engine.load(job.getURL());
}
},
0,
5,
TimeUnit.SECONDS
);
感谢您的帮助,如果您不知道如何解决,我愿意接受任何其他解决方案。
答案 0 :(得分:0)
非常感谢你的帮助! -_-
最后,我通过使用Selenium而不是JavaFX WebEngine解决了这个问题。这有点慢,但是在使用HtmlUnit加载网页时会自动管理js加载和渲染。
和平