WebBrowser simulation d'ENTER ou clic souris

Dudule100 Messages postés 563 Date d'inscription jeudi 25 octobre 2012 Statut Membre Dernière intervention 22 janvier 2017 - 22 nov. 2015 à 12:26
 Dudule100 - 28 nov. 2015 à 13:45
Bonjour,

Voila je développe une application pour un site. J'aurais aimé savoir comment faire pour que le WebBrowser fasse tout seul ENTER apres avoir ecrit un truc dans une textbox, ou alors si pas possible, comment faire pour simuler un clic sur un bouton de connexion.
Voila mon code :

If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Then
MsgBox("Veillez complétez tous les champs ou vérifiez que vous avez rentrer de vrais informations.")
Else
WebBrowser1.Document.GetElementById("bgcdw_login_form_username").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("bgcdw_login_form_password").SetAttribute("value", TextBox2.Text)
End If


Je voudrais que après :

WebBrowser1.Document.GetElementById("bgcdw_login_form_password").SetAttribute("value", TextBox2.Text)


Il y est la pression de la touche enter ou un clic souris sur un bouton. Voila les caractéristique du bouton :

<input class="bgcdw_button bgcdw_login_form_login" type="submit" value="Connexion" placeholder>


Je viens d'essayer sa :

WebBrowser1.Document.GetElementById("bgcdw_login_form_username").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("bgcdw_login_form_password").SetAttribute("value", TextBox2.Text)
WebBrowser1.Document.GetElementById("bgcdw_button bgcdw_login_form_login").Focus()
WebBrowser1.Document.GetElementById("bgcdw_button bgcdw_login_form_login").InvokeMember("clic")


Mais il me dit sa par rapport a la 3eme ligne : Une exception non gérée du type 'System.NullReferenceException' s'est produite
Et si je l'enlever, il me le dit par rapport a la suivante

Merci de votre aide.

1 réponse

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
22 nov. 2015 à 19:50
Bonjour,
es-tu sûr que le bouton a comme ID "bgcdw_button bgcdw_login_form_login" ?

Soit tu l'as mal orthographié .. soit ce n'est pas un ID

Peux tu poster le code HTML de la page concernée ou du moins le code du bouton ?

0
Dudule100 Messages postés 563 Date d'inscription jeudi 25 octobre 2012 Statut Membre Dernière intervention 22 janvier 2017 1
22 nov. 2015 à 22:10
Je l'ai mis le code html du bouton !

C'est sa :
<input class="bgcdw_button bgcdw_login_form_login" type="submit" value="Connexion" placeholder>
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344 > Dudule100 Messages postés 563 Date d'inscription jeudi 25 octobre 2012 Statut Membre Dernière intervention 22 janvier 2017
22 nov. 2015 à 23:49
Comme je m'en doutais... et comme tu peux le voir.... il n'y a aucun ID !
Juste une CLASS
Regardes ici :
http://stackoverflow.com/questions/17656344/how-can-i-click-a-js-button-on-vb
0
Dudule100 > jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024
26 nov. 2015 à 22:10
Donc si j'ai bien compris il faut que je fasse sa :

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WebBrowser1.Url = New Uri("file:///D:/clickJSbutton.html")
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Browser.InvokeScript("openFbLWin_407311");
WebBrowser1.Navigate(New Uri("javascript:(function(){ openFbLWin_407311(); })();"))

Dim links As HtmlElementCollection
links = WebBrowser1.Document.GetElementsByTagName("A")

For Each link As HtmlElement In links
If link.InnerHtml.IndexOf("Like") <> -1 Then
link.InvokeMember("Click")
End If

If link.GetAttribute("className") = "single_like_button btn3-wrap" Then
link.InvokeMember("Click")
End If

Next

End Sub
End Class


Sauf que je ne veux pas que l'activation du java se fasse via un bouton mais qu'elle sa fasse des l'initialisation du webBrowser ou de la page.
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344 > Dudule100
27 nov. 2015 à 01:29
Heu....
je ne te dis pas de copier/coller bêtement le code trouvé sur cette page... mais de t'en inspirer pour faire ce que toi tu souhaites !

En gros.. c'est cette partie là qui devrait t'interesser :
Dim links As HtmlElementCollection
        links = WebBrowser1.Document.GetElementsByTagName("A")

        For Each link As HtmlElement In links
            If link.InnerHtml.IndexOf("Like") <> -1 Then
                link.InvokeMember("Click")
            End If

            If link.GetAttribute("className") = "single_like_button btn3-wrap" Then
                link.InvokeMember("Click")
            End If

        Next

qui, une fois modifier à tes besoins devrait donner un truc du genre :
    Dim inputs As HtmlElementCollection
    inputs = WebBrowser1.Document.GetElementsByTagName("input")

    For Each input As HtmlElement In inputs 

     If input.GetAttribute("className") = "bgcdw_button bgcdw_login_form_login" Then
       input.InvokeMember("Click")
     End If

    Next
0
Ouai j'avais compris c’était juste pour savoir si c'était le bon bout de code ! je me doute bien qu'il faut que je le modifie en fonction de mon cas de figure ^^
0
Rejoignez-nous