- PR -

VB.NETのWebBrowserコントロールで開いたページのボタンの操作

1
投稿者投稿内容
未記入
会議室デビュー日: 2008/08/19
投稿数: 3
投稿日時: 2008-08-19 17:53
VB2008です。
WebBrowserコントロールで読み込んだページ内にあるボタンを押すにはどうしたらいいでしょうか。

HTMLの記述はこうなっています。
<button>OK</button>

ボタンは<form>タグで囲まれておらず、idやnameもついていません。
どうかご教示お願いします。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2008-08-19 18:03
HtmlDocument::GetElementsByTagNameで探すとか。
JavaScriptのメソッド一つを呼び出してるだけなら直接HtmlDocument::InvokeScript使うとか。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-08-19 21:12
つぎのいずれかか、その合わせ技でやることが思いつきます。

(1) そのページの製作者に「name や id を付けてくれ」と頼む。

(2) GetElementsByTagName メソッドで取得する。複数取得できた場合は InnerText や InnerHtml などのプロパティーで "OK" を含むものを絞り込む。あるいは得られた List の中の何番目の要素かで判定する。

(3) Children プロパティーでひたすら DOM のツリー構造をたどる。(GetElementsByTagName だと子だけでなく孫までも取得してしまうので、使いづらいときがある。)

(4) 私はやったことはないですが、おそらくボタンの位置(x, y)をピクセル単位で取得できる方法があると思うので、その位置で絞り込む。やらないほうが良いでしょう。

私は(2)と(3)でやっています。

#以下、追記。

ボタンの特定ではなくボタンの押し方ということでしょうか?
クリックは、次のコードです。

コード:

HtmlElement element; // ボタンの HtmlElement;
element.InvokeMember("click");



[ メッセージ編集済み 編集者: unibon 編集日時 2008-08-19 21:16 ]
1

スキルアップ/キャリアアップ(JOB@IT)