JXBrowser,等待 window.location = 另一个 url
JXBrowser, waiting for window.location = another url
我必须在页面上提交表格。我导航,注入我的脚本,然后填写表格,然后点击提交。
但是,表格是标准post,不是ajax,所以一切将被浏览器重新加载。
找出新页面何时实际重新加载的最佳方法是什么?
届时 loadAdapter 功能将不可用,因为我没有使用 loadURL() 导航到 url但该页面已在浏览器本身内重新加载。
我可以手动休眠一段时间,但是我想知道是否有更好的解决方案。
您可以将 LoadAdapter 用于标准 POST 请求。请看下面的示例代码:
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent;
import com.teamdev.jxbrowser.chromium.events.FrameLoadEvent;
import com.teamdev.jxbrowser.chromium.events.LoadAdapter;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class LoadListenerSample {
public static void main(String[] args) {
final Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(view, BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
browser.addLoadListener(new LoadAdapter() {
@Override
public void onFinishLoadingFrame(FinishLoadingEvent event) {
System.out.println("LoadListenerSample.onFinishLoadingFrame");
}
@Override
public void onDocumentLoadedInFrame(FrameLoadEvent event) {
System.out.println("LoadListenerSample.onDocumentLoadedInFrame");
}
});
browser.loadURL("https://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_submit");
}
}
我必须在页面上提交表格。我导航,注入我的脚本,然后填写表格,然后点击提交。
但是,表格是标准post,不是ajax,所以一切将被浏览器重新加载。
找出新页面何时实际重新加载的最佳方法是什么?
届时 loadAdapter 功能将不可用,因为我没有使用 loadURL() 导航到 url但该页面已在浏览器本身内重新加载。
我可以手动休眠一段时间,但是我想知道是否有更好的解决方案。
您可以将 LoadAdapter 用于标准 POST 请求。请看下面的示例代码:
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent;
import com.teamdev.jxbrowser.chromium.events.FrameLoadEvent;
import com.teamdev.jxbrowser.chromium.events.LoadAdapter;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class LoadListenerSample {
public static void main(String[] args) {
final Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(view, BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
browser.addLoadListener(new LoadAdapter() {
@Override
public void onFinishLoadingFrame(FinishLoadingEvent event) {
System.out.println("LoadListenerSample.onFinishLoadingFrame");
}
@Override
public void onDocumentLoadedInFrame(FrameLoadEvent event) {
System.out.println("LoadListenerSample.onDocumentLoadedInFrame");
}
});
browser.loadURL("https://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_submit");
}
}