VB/VB.Net [Question] Remplir le formulaire d'un site

A

Anonymous

Invité
#1
Bonjour à tous !
J'ai commencé il y a de ça une heure à coder un programme, un créateur de compte en m'adaptant au tutoriel de soso60, en améliorant certaines choses, en retirant d'autres... Bref, j'ai eu un petit problème. Je me suis dit que ce serait mieux que, au moment de remplir le formulaire du site Dofus, on n'ait pas à voir la fenêtre, ce serait moins contraignant pour l'utilisateur.

Donc voilà, comment remplir le formulaire d'inscription sans avoir la fenêtre d'ouverte ? Après bon, pour le captcha c'est une autre histoire...
 
A

Anonymous

Invité
#2
Bonsoir et bienvenue sur cadernis,

Tu va dans les propriétées de ton webbrowser:
Visible -> False

Bonne soirée
 
A

Anonymous

Invité
#3
Merci beaucoup, ça me sera utile ! :)
Deuxième question, quand je tape la ligne de code :

WebBrowser1.Document.GetElementById("Nom de compte").Focus()
SendKeys.Send(TextBox1.Text.ToString)

Qui a pour but de transférer le String de la textbox1 vers la textbox1 du site, eh bien rien ne se passe.
Comment faire ?
 
A

Anonymous

Invité
#4
Vérifie l'ID de l’élément et / ou met un petit délais entre les deux action (Si on envoie pas les touche avec SendKeys.Send, on ne peux pas validé le formulaire :/)
 
A

Anonymous

Invité
#5
Oui tu n'as pas rentre le bonne id.
Si tu tourne sur google chrome:
Clic droit sur la 'Textbox', inspecter l'element tu y trouvera ton bonheur sinon tu dois aller voir dans les sources de la page.
 
A

Anonymous

Invité
#6
Merci pour l'astuce ! Mais maintenant j'ai (encore) un problème.
J'ai donc le code suivant :
Code:
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        WebBrowser1.Document.GetElementById("userlogin").Focus()
        System.Threading.Thread.Sleep(100)
        SendKeys.Send(TextBox1.Text.ToString)
        System.Threading.Thread.Sleep(300)

        WebBrowser1.Document.GetElementById("userpassword")
        System.Threading.Thread.Sleep(100)
        SendKeys.Send(TextBox2.Text)
        System.Threading.Thread.Sleep(300)

        WebBrowser1.Document.GetElementById("userpassconfirm")
        System.Threading.Thread.Sleep(100)
        SendKeys.Send(TextBox2.Text)
        System.Threading.Thread.Sleep(300)

        WebBrowser1.Document.GetElementById("usernickname")
        System.Threading.Thread.Sleep(100)
        SendKeys.Send(TextBox3.Text)
        System.Threading.Thread.Sleep(300)

        WebBrowser1.Document.GetElementById("useremail")
        System.Threading.Thread.Sleep(100)
        SendKeys.Send(TextBox4.Text)
        System.Threading.Thread.Sleep(300)

    End Sub

Le résultat, c'est que ça remplit la Textbox n°1 du site, mais ça met tout dans la 1 et rien dans les autres !
A la base il y avait un Focus() à chaque ligne mais je les ai enlevai et j'en ai mis qu'aux premier.
J'ai aussi essayé de ne pas en mettre du tout mais ça ne remplit plus rien.
 
A

Anonymous

Invité
#7
Il faut mettre un .focus sur toute les lignes...
 
A

Anonymous

Invité
#8
Si j'en met partout, ça met toutes les données dans la dernière case, j'ai déjà essayé...
 
A

Anonymous

Invité
#9
Eh bien c'est qu'il y a un problème, sans le .focus tu ne pourra rien faire.
Le .focus permet de sélectionner la 'textbox' du site pour ensuite y entrer ton texte.
Tu n'as pas récupérer la fonction hbait du tuto de soso, il a créer cette fonction pr remplacer le thread.sleep c'est surment pour cela.
 
A

Anonymous

Invité
#10
Je ne vois pas où il crée sa fonction. :/
 
A

Anonymous

Invité
#11
Apprend a lire un code, c'est pas compliqué la fonction se nomme hbwait. Tu ne vois pas qu'il l'utilise dans son tuto ?
 
Haut Bas