2017-10-16 20 views
0

Bonjour, Je travaille sur un menu de compte facile à mettre en marche via un navigateur Web. J'essaye de faire un signe automatique de bouton dans la personne. Je peux avoir le bouton remplir automatiquement le mot de passe et le nom d'utilisateur, mais le bouton de soumission ne fonctionnera pas.Comment appuyer sur un bouton dans le navigateur Web vb.net

Voici le lien vers la connexion de vapeur: Here

Voici la vue des éléments du bouton. Notez également qu'il semble que cela se ramifie à une sorte d'événement? enter image description here

Je suis un peu perplexe sur comment approcher cela. Est-ce que je peux utiliser la console Web pour la soumettre de cette façon? Voici ce que j'ai obtenu jusqu'à présent:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    WebBrowser1.ScriptErrorsSuppressed = True 

    WebBrowser1.Document.GetElementById("input_username").SetAttribute("value", TextBox1.Text) 

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

    WebBrowser1.Document.All("login_btn_signin").InvokeMember("click") 

End Sub 
+0

Le contrôle 'WebBrowser' par défaut utilise un mode d'émulation de documents d'Internet Explorer 7, ce dont je doute vapeur site web est compatible avec aujourd'hui. Votre code devrait fonctionner, mais ce n'est probablement pas parce qu'il y a des erreurs (de script) dues à la version du navigateur trop ancienne. Passer à la dernière version IE installée sur le système (qui, espérons-le, est IE 11/Edge) résoudra très probablement le problème. Voir ma réponse ici: [Navigateur Web Vb.net Visual Studio Navigate Bad Request] (https://stackoverflow.com/questions/42365833/vb-net-visual-studio-web-browser-navigate-bad-request) –

+0

Le navigateur arrête le site Web de vapeur juste et je peux me connecter manuellement. Le code saisit également le nom d'utilisateur et le mot de passe. Je ne vois pas pourquoi avoir besoin d'utiliser un navigateur plus élevé est nécessaire, mais je peux essayer. –

+0

Cependant, en définissant 'WebBrowser1.ScriptErrorsSuppressed = True', vous ne savez jamais vraiment s'il y a des erreurs de script ou non. Bien que vous devriez toujours passer à la dernière version depuis IE 7 est _ ** vraiment ** _ vieux, ce qui rend la probabilité de quelque chose qui échoue _ ** très élevé ** _. –

Répondre

1

Après avoir examiné votre image correctement, j'ai remarqué que vous cliquez sur le mauvais élément. Cet élément <div id="login_btn_signin"> est juste un conteneur et ne fait rien. Vous devriez cliquer sur l'élément <button> sous-jacent.

Étant donné que le bouton lui-même ne dispose pas d'un ID que vous devrez utiliser une solution de contournement: de

'Get the "login_btn_signin" parent/container div. 
Dim LoginButtonContainer As HtmlElement = WebBrowser1.Document.GetElementById("login_btn_signin") 

'Get the first found <button> element in the container div. 
Dim LoginButton As HtmlElement = LoginButtonContainer.GetElementsByTagName("button")(0) 

'Click the button. 
LoginButton.InvokeMember("click") 
+0

Véritable légende. Merci beaucoup. –

+0

@JohnKens: Content que je puisse aider! –