javafx多线程无法运行Webengine命令

时间:2018-07-10 10:54:23

标签: multithreading javafx

我试图填写有时需要一些等待时间的表格,因此在进行大量搜索之后,我能够延迟某些命令的执行(我必须创建一个单独的线程来执行此操作),但效果很好,但当我尝试使用WebEngine之类的命令,例如executescript时,它不起作用。

这是我的摘录:

注意: eng是一个WebEngine实例,在线程外运行正常。

更新:经过小测试,我发现eng实例在线程中运行正常,但是我无法运行eng.executescript()

Update2 :经过一番搜索,我发现eng.executescript必须在主线程上运行,但是同时我需要将执行延迟一段时间,我不确定我该怎么做。

Thread one = new Thread() {
                        public void run() {
                            try {
                                System.out.println("Does it work?");
                                Thread.sleep(2000);
                                eng.executeScript("document.getElementById(\"textFieldId\").value = 100");
                                System.out.println("yup");
                            } catch(InterruptedException v) {
                                System.out.println(v);
                            }
                        }  
                    };

                    one.start();

1 个答案:

答案 0 :(得分:0)

我已经通过使用setTimeout函数通过javascript实现等待部分来解决此问题,并且它起到了作用