gpt4 book ai didi

JavaFX WebEngine 依次执行 Javascript 以在网站上执行操作

转载 作者:行者123 更新时间:2023-11-30 07:49:05 26 4
gpt4 key购买 nike

我想使用 JavaFX WebEngine以这样一种方式,我可以执行 Javascript 代码以填写一个表格,然后单击我打开的网站上的提交按钮。我正在使用 ChromeDriver 但我不喜欢它的某些方面,WebView 更适合我的需求,但据我研究,确保页面加载的唯一方法是向 WebEngine 添加状态监听器以及何时加载成功,在网页上进行操作。但是,当我执行 Javascript 并提交表单时,会打开一个新网页,因此它第二次成功(第一次,打开包含该表单的网页)并在监听器中执行相同的表单填写代码。我想在提交表单后执行其他 Javascript 代码,但我找不到执行此操作的好方法。在 ChromeDriver 中,我可以简单地等待一定的时间,但是对于 WebView 的情况,因为它在 UI 线程中执行,所以我不能那样做。谢谢。

最佳答案

我不确定你是不是这个意思。 SUCCEEDED 只是关于引擎状态的信息,为了更准确你应该检查其他参数,例如:如果你想在一个监听器中处理不同的页面,你可以使用基于位置的(当前加载的)网址)验证。

WebEngine engine = webView.getEngine();

engine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> {
if (newValue != State.SUCCEEDED) {
return;
}

String location = engine.getLocation();

if (location.contains("page1")) {
// Do something
return;
}

if (location.contains("page2")) {
// Do something
return;
}

System.out.println("Unhandled location: " + location);
});

关于JavaFX WebEngine 依次执行 Javascript 以在网站上执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48721849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com