1

ウェブサイトの 3 ページ目にある HTML ボタンをプログラムでクリックする必要があります。ボタンにはIDがありません。名前 type と value だけです。ボタンの HTML コードを以下に示します。

<FORM NAME='form1' METHOD='post' action='/dflogin.php'>
  <INPUT TYPE='hidden' NAME='txtId' value='E712050-15'>
  <INPUT TYPE='hidden' NAME='txtassId' value='1'><INPUT TYPE='hidden' NAME='txtPsw'  value='HH29'>
  <INPUT TYPE='hidden' NAME='txtLog' value='0'><h6 align='right'>
  <INPUT TYPE='SUBMIT' NAME='btnSub' value='Next' style='background-color:#009900; color:#fff;'></h6>
</FORM>

私はそれをクリックするために次のコードを使用しています

For Each webpageelement As HtmlElement In allButtons

        If webpageelement.GetAttribute("value") =  "Start" Then

            webpageelement.InvokeMember("click")

        End If

Next

しかし、私はそれをクリックすることができません。vb.net 2008 プラットフォームを使用しています。誰かがそれをクリックする解決策を教えてもらえますか?

4

5 に答える 5

1

入力をクリックするのではなく、フォームで送信を呼び出してみてください。

編集: おっと、HTMLElementCollection は一般的な IEnumerable を実装していません。代わりにこれを試してください:

Dim l_forms = WebBrowser1.Document.GetElementsByTagName("form")
If l_forms.Count > 0 Then
  l_forms.Item(0).InvokeMember("submit")
End If
于 2012-06-20T03:52:21.767 に答える
1
Dim Elems As HtmlElementCollection
Dim WebOC As WebBrowser = WebBrowser1
Elems = WebOC.Document.GetElementsByTagName("input")
For Each elem As HtmlElement In Elems
    elem.InvokeMember("click")
Next
于 2012-06-19T12:46:04.940 に答える
0

ソリューション:

WebBrowser1.Navigate("UrlHere!")

'wait till the page is laoded

Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
Loop

WebBrowser1.Document.Body.InnerHtml = Replace(WebBrowser1.Document.Body.InnerHtml, "NAME='btnSub'", "NAME='btnSub' id='btnSub'") 'insert id into youre button
WebBrowser1.Document.GetElementById("btnSub").InvokeMember("click") 'click on btnSub

;)

于 2012-06-20T11:22:44.150 に答える
0

クライアント側のアクションを実行しようとしているようです-サーバー上で操作しているときにボタンをクリックします(VBコード)。これは機能しません。

したがって、Javascript を使用するかdocument.form1.submit()、ボタンbtnsub.click(または任意の名前) に接続されている VB サブルーチンを呼び出します。

于 2012-06-19T12:45:46.033 に答える