プロが教えるわが家の防犯対策術!

VB初心者です
ご指導の程宜しくお願い致します

visual basic 2008 でWebBrowserにて

webページに複数のname属性のないsubmitがある場合どうやって選択して押す動作をさせるのでしょうか???

下記:webのソース
<input type="submit" value="変更する" class="formBt01" />
<input type="submit" value="戻る" class="formBt02" />

どちらかを選択できるようにしたいです

過去にも同じような質問がありましたが回答の通り試しましたが
うまくいきません

自分が試したもの
WebBrowser1.Document.Forms(0).InvokeMember("submit")
もちろんwebソースにsubmitが二つあるので、動作しません

WebBrowser1.Document.Forms(1).InvokeMember("submit")
フォームで選ぶのかなと試しましたが何も動作しません

WebBrowser1.Document.Forms("ボタンのname").InvokeMember("click")
ボタンの名前がわからないので、これは使えず…

どなたかご教授お願いします

A 回答 (1件)

動作確認はしていませんがこんな感じ



For Each el As HtmlElement In webBrowser1.Document.Forms(0).GetElementsByTagName("input")
If el.GetAttribute("type").ToLower() = "submit" Then
If MessageBox.Show("", el.GetAttribute("value") + "ボタンをクリックします", MessageBoxButtons.YesNo) = DialogResult.Yes Then
el.InvokeMember("click")
End If
End If
Next

この回答への補足

crystal_cageさん回答ありがとうございます

教えて頂いたとおりやってみたのですが、うんともすんとも動作しません

直前にsubmitを押してるのが原因でしょうか???

webでの
1ページ目 内容を確認する
2ページ目 変更する or 戻る

vb 2005 でのソース

WebBrowser1.Document.Forms(0).InvokeMember("submit") '入力内容を確認する

Do While Not WebBrowser1.ReadyState = WebBrowserReadyState.Complete
Debug.Print(WebBrowser1.ReadyState)
Application.DoEvents()
Loop

このソースで2ページ目に飛ぶのですが飛んだ後の動作がしません
そしてこのソースの後に教えて頂いたのを貼り付けました
もしかしたら、教えて頂いたソースを1ページ目で動作しちゃってるのでしょうか???

そうならないように↓コレを入れたんですけど…
Do While Not WebBrowser1.ReadyState = WebBrowserReadyState.Complete
Debug.Print(WebBrowser1.ReadyState)
Application.DoEvents()
Loop

泣きそうです…

補足日時:2008/02/29 23:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!