IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

HtmlUnit + form


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut HtmlUnit + form
    Bonjour,

    J'utilise HtmlUnit pour remplir un formulaire dans un site distant. Mon problème est dans ce site le formulaire est défini comme ce ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="MiniConnexion" action="" method="post">
    c-à-d il n y a pas d'attribut "name", j'ai besoin de cet attribut car la classe "HtmlPage" ne possède que la méthode "getFormByName"

    Voici une partie de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    final HtmlPage page1 = webClient.getPage("http://url-site-distant");
     
    	    // Get the form that we are dealing with and within that form, 
    	    // find the submit button and the field that we want to change.
    	    final HtmlForm form = page1.getFormByName("MiniConnexion");
    SVP, aidez moi, je me suis coincé

    Merci d'avance.

  2. #2
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    D'après l'API je dirai que tu pourrait utiliser la méthode getForms() qui renvoie tous les formulaires.
    Ensuite tu parcours cette liste et recherche celui dont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getIdAttribute.equals("MiniConnexion")
    Good luck!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    Bonjour Jidefix,

    J'ai essayé de suivre ce que tu m'a donné. Voila mes modifications:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    final HtmlPage page1 = webClient.getPage("http://url-site-distant");
     
    	    // Get the form that we are dealing with and within that form, 
    	    // find the submit button and the field that we want to change.
    	   List form0 = page1.getForms();
     
    	   Iterator j = form0.iterator();
    	   HtmlForm element = (HtmlForm) j.next();
    	   while (j.hasNext() && !(element.getId().equals("MiniConnexion")))
    	   {
    		   element = (HtmlForm) j.next();
    	   }
    	   final HtmlForm form = (HtmlForm)element;
    final HtmlSubmitInput button = form.getInputByName("mini-submit");
    	    final HtmlTextInput login = form.getInputByName("mini-login");
    	    final HtmlTextInput pass = form.getInputByName("mini-pass");
     
                 login.setValueAttribute("mail");
    	    pass.setValueAttribute("mdp");
     
     
    	    // Now submit the form by clicking the button and get back the second page. <TITLE>Contact</TITLE>
     
    	     HtmlPage page2 = button.click();
    Apres ces modifications, j'ai obtenu ces erreurs :

    com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
    ATTENTION: Expected content type of 'application/javascript' or 'application/ecmascript' for remotely loaded JavaScript element at 'http://url-site-distant/includes/scripts.js', but got 'application/x-javascript'.

    avec d'autres erreurs similaires de type Javascript.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    J'ai trouvé la source d'erreur (mais pas totalement).
    En fait, c'est ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final HtmlTextInput pass = form.getInputByName("mini-pass");
    le champ "mini-pass" est de type "password" et non pas "text".

    Mais mon problème pour le moment est comment je peux récupérer les alertes javascript (la plupart du temps la réponse d'un formulaire est une alerte javascript). J'ai trouvé ce lien mais j'ai pas bien compris comment on fait pour récupérer ces messages.

    Merci d'avance pour m'aider.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut
    Bonjour,

    pas de réponse pour ce post?
    Je suis tombé dans la même situation.


Discussions similaires

  1. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  2. HtmlUnit + form + HtmlPage
    Par lahmar.abdel1 dans le forum Général Java
    Réponses: 0
    Dernier message: 09/05/2009, 13h36
  3. [Kylix] SIGSEGV 11 - creation form
    Par pram dans le forum EDI
    Réponses: 1
    Dernier message: 29/08/2002, 15h24
  4. [FORMS] Chemin des icones (intégré FAQ 150 QR)
    Par jerome62 dans le forum Forms
    Réponses: 2
    Dernier message: 30/07/2002, 08h32
  5. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo