2017-10-16 92 views
0

您好,我正在开发一个简单的帐户菜单,通过网页浏览器登录蒸汽。我正在尝试在该人物上进行按钮自动登录。我可以让按钮自动填充密码和用户名,但提交按钮不起作用。如何在vb.net网页浏览器中按下按钮

这里是链接到蒸汽的登录:Here

下面是按钮的元件图。还请注意,它看起来像分支可能是某种事件? enter image description here

我有点难以接近这一点。有没有一种方法可以使用Web控制台以这种方式提交?以下是我走到这一步:

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

的'默认WebBrowser'控制使用Internet Explorer 7的文档仿真模式,我怀疑蒸汽的网站与今天兼容。您的代码应该可以工作,但它可能不会因为浏览器版本太旧而导致(脚本)错误。切换到系统上最新安装的IE版本(希望是IE 11/Edge)很可能会解决问题。在这里看到我的答案:[Vb.net Visual Studio Web浏览器导航坏请求](https://stackoverflow.com/questions/42365833/vb-net-visual-studio-web-browser-navigate-bad-request) –

+0

浏览器确实拉起蒸汽网站很好,我可以手动登录。代码还输入用户名和密码。我不明白为什么需要使用更高版本的浏览器,但我可以尝试。 –

+0

虽然通过设置'WebBrowser1.ScriptErrorsSuppressed = True',你永远不会真正知道是否有任何脚本错误。虽然您应该仍然切换到最新版本,因为IE 7真的是** _旧的,使得失败的可能性非常高** _。 –

回答

1

检查图像后妥善我注意到你点击了错误的元素。 <div id="login_btn_signin">元素只是一个容器,并没有做任何事情。您应该点击底层的<button>元素。

由于按钮本身没有一个ID,你将不得不使用一种变通方法:

'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

真实的传说。非常感谢。 –

+0

@JohnKens:很高兴能帮到你! –

相关问题