1

我正在使用下面的代码导航到使用 vb.net 的 url

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 中更新吗?还是我必须分配给一个新对象?

4

1 回答 1

0

我不认为使用 ofAll是合适的解决方案,主要是因为它总是会返回一个元素的集合,即使它只找到一个。

相反,试试这个:

wb.Document.GetElementById("button").InvokeMember("click")
于 2013-01-19T00:47:32.350 回答