我使用以下代码使用vb.net导航到网址
wb.Navigate("https://irctc.co.in", False)
While wb.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
稍后我填写表格
中的用户名和密码文本框If CType(elm, System.Windows.Forms.HtmlElement).Name = "userName" Then 'Get User ID Element
CType(elm, System.Windows.Forms.HtmlElement).InnerText = "text"
ElseIf CType(elm, System.Windows.Forms.HtmlElement).Name = "password" Then 'Get Password Element
CType(elm, System.Windows.Forms.HtmlElement).InnerText = "text"
End If
在使用上面的行
填写表单后,我使用以下代码提交按钮wb.Document.All("button").Focus()
wb.Document.All("button").InvokeMember("click")
按钮的html部分
<input type="submit" name="button" id="button" class="buttonSubmit" value="Login" onclick="return validate();" > </td>
然而它似乎没有调用任何东西,尝试分配Invokemember方法的结果对象,来自“Nothing”。它没有进入文件完成程序。我必须填写单击提交按钮后出现的下一个表单。在调用成员之后,我如何告诉程序等到下一页加载?加载后,下一个表单的html详细信息是否会在webbrowser对象wb中更新?或者我必须分配给新对象吗?
答案 0 :(得分:0)
我不认为使用All
是合适的解决方案,主要是因为它总是会返回一个元素集合,即使它只找到一个元素。
相反,试试这个:
wb.Document.GetElementById("button").InvokeMember("click")