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

VB.NET Discussion :

Envoyer infos formulaire html sans ID


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Novembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2011
    Messages : 20
    Par défaut Envoyer infos formulaire html sans ID
    Bonjour, j'aimerais créer un formulaire en VB.Net qui remplie les "textbox" HTML de Ce site (cliquez sur le radiobutton "Je n'utilise pas ses autres services"), en gros que quand j'écris dans mes textbox ça remplie celles du site.

    Mais le problème est que les textbox du site n'ont pas d'ID dans le code source, donc le code normal ne marche pas (WebBrowser1.Document.GetElementById("....").SetAttribute("value", TextBox1.Text))

    Donc s'il vous plaît je compte sur vous pour me trouver une solution (sachant qu'il y a toujours le Name, le type, l'input...) mais j'ai esseiller avec GetAttribute, GetElementByTagName etc et ça ne marche pas...

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,


    Voici une piste a explorer du codé de MSDN GetElementsByTagName

    Voici aussi un exemple issue de MSDN qui te monde comment lire les éléments d'une balise <META>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        If (WebBrowser1.Document IsNot Nothing) Then
            Dim Elems As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("META")
     
            For Each elem As HtmlElement In Elems
                Dim NameStr As String = elem.GetAttribute("name")
     
                If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
                    If NameStr.ToLower().Equals("description") Then
                        Dim ContentStr As String = elem.GetAttribute("content")
                        MessageBox.Show("Document: " & WebBrowser1.Url.ToString() & vbCrLf & "Description: " & ContentStr)
                    End If
                End If
            Next
        End If

    PS: tu t'ennuie a ce point au collège

  3. #3
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Novembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2011
    Messages : 20
    Par défaut
    Merci pour ton aide, mais un problème se pose; sur la page web que j'utilise pour faire mon projet, je ne trouve pas de balises META. Serait-il possible de se contacter via Skype pour que je puisse comprendre le principe de ce que tu m'as exposé ? car j'ai beau chercher un peut partout, je ne trouve pas comment faire le lien avec la page ET les textbox...

    Merci beaucoup en tout cas pour ta réponse et si tu veux bien envoi moi un MP.

    ps : Ouais le collège c'est pas top, trop facile, puis il faut bien commencer jeune non ?

  4. #4
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Heuuu pas possible, la je suis au boulot ^^

    Non mais l'exemple parle d'une balise META, a toi de l'adapter a la fenêtre.
    Je connais pas grand choses au Web, vite faite le langage mais aller choper des éléments en vb.net, je saurais pas te dire...

    Tout ce que je vois, c'est que tu peux scruter la structure XML de la page Web.
    De la tout est possible, tu moment que t'arriver a ouvrir la bonne balise HTML.

    Si tu comprend pas dit moi,j'essayerais de détailler plus.
    le soucis, c'est que je ne connais pas ton niveau en langage Web, vb, etc.

  5. #5
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    En grattant un peu j'ai trouvé la balise que tu cherche,

    le code ci dessous est adapté pour etre jolie dans les balises de code mais en aucun c'est du HTML ou du vb ^^
    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
    <div class="signup-question">
     
       <div class="signup-questionText">"Quel cas de figure s'applique le mieux à votre situation ? "</div>
       <div class="signup-radioChoices">
         <div class="signup-radioQuestion">
     
            <input class="signup-radio" type="radio" name="keyGoogleAccount" value="yes" id="hasGoogleAccount"  />
            <label for="hasGoogleAccount">"Je possède une adresse e-mail et un mot de passe que j'utilise déjà avec des services Google tels que AdSense, Gmail, Orkut ou iGoogle."</label>
     
          </div>
     
          <div class="signup-radioQuestion">
              <input class="signup-radio" type="radio" name="keyGoogleAccount" value="yes" id="hasNoGoogleAccount" />
              <label for="hasNoGoogleAccount">"Je <i>n'utilise pas</i> ces autres services."</label>
     
          </div>
       </div>
     
      <br/>
      '...
    </div>
    l'idée est que tu creuse dans le code, de manière a ouvrir cette balise.
    je pencherais sur cette idée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Elems As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("div class=""signup-question""")
    Après je te laisse voir si tu arrive a lire les éléments qui sont à l'intérieur

  6. #6
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Novembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2011
    Messages : 20
    Par défaut
    J'ai réussi à adapter, j'ai compris ce que c'était que la balise META, donc je l'ai remplacé par la balise input (merci de la couleur que tu m'avais mis, ça m'a aidé à comprendre)

    Maintenant, j'arrive jusqu'à la fin du code et tout marche, mais le problème est que maintenant je n'arrive pas à attribuer la "value" de la textbox1 dans ce que j'ai déclaré car ce code "NameStr.SetAttribute("value", TextBox1.Text)" que j'utilise d'habitude avec GetElementByID ne marche pas.

    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
     If (WebBrowser1.Document IsNot Nothing) Then
                Dim Elems As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("input")
     
                For Each elem As HtmlElement In Elems
                    Dim NameStr As String = elem.GetAttribute("name")
     
                    If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
     
                        If NameStr.Equals("Email") Then
     
                            Dim ContentStr As String = elem.GetAttribute("content")
                            ' MessageBox.Show("Document: " & WebBrowser1.Url.ToString() & vbCrLf & "Description: " & ContentStr)
                           NameStr.setattribute("value", TextBox1.Text)
     
                        End If
                    End If
                Next
            End If
     
        End Sub
    Aurais-tu un équivalent avec GetElementsByTagName ?

    ps : on voit que ça bosse au boulot ^^

    EDIT : Vien de voir ton message

    Ce que tu m'as proposé là est pour le radiobutton, mais ça j'ai déjà réussi à l'ouvrir automatiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser1.Document.GetElementById("hasNoGoogleAccount").InvokeMember("click")

  7. #7
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Merci de mettre la balises, pour qu'on se situe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <input  type="text" name="Email"  id="Email" size="18" value="" class="gaia le val" />
    Pour ton problème, c'est pas gagné...
    J'ai trouvé aucune solution sur la toile, juste une explication
    you can simply add runat="server" in that control as shown below and you will be able to access this control id in code behind.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="name" id="name" runat="server">
    Visiblement tu ne va pas pouvoir écrire dedans si on ne t'y autorise pas
    (en soit c'est rassurant, sinon adieu les serveurs )

Discussions similaires

  1. Envoyer un formulaire Html d'authentification pour un proxy
    Par urbanoll2 dans le forum Sécurité
    Réponses: 6
    Dernier message: 05/11/2010, 00h44
  2. [JavaMail] envoyer un formulaire HTML ?
    Par mega_info dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 30/01/2007, 10h51
  3. [HTML]Envoyer un formulaire a un webservice
    Par virgul dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 27/07/2006, 14h57
  4. Réponses: 4
    Dernier message: 15/05/2006, 12h38
  5. [HTML] Envoyer données formulaire automatiquement ??
    Par Aspic dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/03/2006, 19h41

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