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" になりました。手続き完了の書類にはなりません。送信ボタンをクリックした後に表示される次のフォームに入力する必要があります。また、invokemember の後、次のページが読み込まれるまで待機するようにプログラムに指示するにはどうすればよいですか? 読み込まれると、次のフォームの html の詳細が webbrowser オブジェクト wb で更新されますか? または、新しいオブジェクトに割り当てる必要がありますか?

4

1 に答える 1

0

の使用は適切な解決策ではないと思いますAll。主な理由は、要素が 1 つしか見つからない場合でも、常に要素のコレクションを返すためです。

代わりに、これを試してください:

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