VB6.0SP5でWebbrowserコントロールを使って自分の巡回しているホームページの
リンク集みたいなツールを作っているのですがホームページを開いた時にそのページの
チェックボックスやテキストボックスを操作したいのですが方法を教えていただきたいです。
またボタンなどの押す操作を自動的にできるものでしょうか?
(具体的にはログインのページを開いてそのままログインする)
よろしくお願いいたします。
少し前に(下の2/16)に同様の質問と回答がありますが?
過去ログを良く調べなくて投稿してしまい申し訳ありません。
HTML上のチェックボックスを操作するにはの投稿を拝見しました。
input type="check"オブジェクトのcheckedプロパティに、Trueを代入すればOKです。
とあるのですがどのようにしてinput type="check"オブジェクトを操作するのかが
よくわかりません。
WebBrowserのDocumentプロパティは、
「DHTMLのdocumentオブジェクト」を返しますので、
それを使って処理する事になります。
(従って、DHTMLに関する、ある程度の知識が要求されます)
とりあえず、サンプルを記述しておきます。
Option Explicit
Private Sub Text1_Change()
On Error Resume Next
WebBrowser1.Document.f.q.Value = Text1.Text
End Sub
Private Sub Check1_Click()
On Error Resume Next
If Check1.Value = vbChecked Then
WebBrowser1.Document.f.lr(1).Checked = True
Else
WebBrowser1.Document.f.lr(0).Checked = True
End If
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text1.Enabled = False
Check1.Enabled = False
WebBrowser1.RegisterAsDropTarget = False
WebBrowser1.Navigate2 "http://www.google.co.jp/"
Check1.Caption = "ラジオボタン変更"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL)
Text1.Enabled = True
Check1.Enabled = True
End Sub
なお、「documentオブジェクト」や「input type="check"オブジェクト」の
仕様に関しては、以下を参照してください。
[DHTMLリファレンス] (IE4当時に訳された資料なので、少々古いです)
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpisdk/dhtml/references/dhtmlrefs.htm
[HTML and DHTML Reference] (こちらの情報は、適宜更新されています)
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/dhtml_node_entry.asp
魔界の仮面弁士さん丁寧なご説明ありがとうございます。
DHTMLに関する知識はないので勉強してやってみます。
ありがとうございました。
ありがとうございます。思ったとおりのことができるようになりました!
ただ一点だけできないことがありました。
inputなどのnameに".mail"みたいに.が入っているとどうすればよいかわかりません。
(ヤフーのログイン画面のチェックボックスなどがそうなのですが)
WebBrowser.Document.Forms(a)..persistent.Checked = True
(もちろんこれでは駄目ですが)
このような場合に何か方法はあるのでしょうか?
よろしくお願いします。
documentオブジェクトのgetElementsByNameメソッドを使ってください。
また、その要素にid属性が付加されている場合は、documentオブジェクトの
getElementByIdメソッドを利用する事ができます。
nameもidも無い場合は、getElementsByTagNameメソッド
(あるいはallやchildNodesなど)を利用すると良いでしょう。
魔界の仮面弁士さんありがとうございます。
getElementsByNameをつかってうまくいきました。
みなさんの様々な質問にお答えしているのはすごいとかしか言い様がありません(^^;)
私もまだプログラミングは始めたばっかりですがいろんな事をできるように
勉強したいと思います。
今回はほんとうにありがとうございました。
ツイート | ![]() |