WebBrowser simulation d'ENTER ou clic souris

Dudule100
Messages postés
550
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
36051
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2022
358
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
550
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
36051
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2022
358 > Dudule100
Messages postés
550
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
36051
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2022

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
36051
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2022
358 > 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