2017-08-24 5 views
0

Je dois soumettre un formulaire sur la page. Je navigue, injecte mes scripts, puis remplis un formulaire et clique sur submit.JXBrowser, en attente de window.location = une autre URL

Cependant, la forme est un poteau standard , pas ajax, et donc tout sera rechargé par le navigateur.

Quel serait le meilleur moyen de savoir quand la nouvelle page a réellement été rechargée?

Le loadAdapter fonctionnalité ne sera pas disponible, puisque je ne l'ai pas accéder à l'URL en utilisant loadURL() mais la page a été rechargée dans le navigateur lui-même.

Je pourrais dormir manuellement pendant un certain temps, mais j'aimerais savoir s'il existe une meilleure solution.

Répondre

1

Vous pouvez utiliser LoadAdapter pour les requêtes POST standard. S'il vous plaît jeter un oeil à l'exemple de code ci-dessous:

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