人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualBasic2005Professionalで勉強中です。WebBrowser1とTextBox1が乗っているフォームで、自動的に制御してテキストボックスに目的の文字列を取得しようとしています。「WebBrowser1.Navigate」や「GetElementsByTagName(
"INPUT").Item(1).InnerText = xxxx」や「InvokeMember("click")」を使用しています。しかるに、Navigateで移動した場合には問題なく取得できますが、InvokeMember("click")などで移動した場合には、WebBrowser1の表示上はきちんと移動しているにも関わらず、取得した文字列は移動前のページの内容となってしまいます。これを、Timer1.Enable = Trueなどで処理の流れを引き継ぐことによって、文字列の取得のみを別のプロシージャでやってやると、きちんと移動後のページの内容が取得できます。なぜでしょうか?

●質問者: crashtruck
●カテゴリ:コンピュータ
✍キーワード:Click XXXX テキスト プロ ボックス
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● taku_satoh
●60ポイント

こんにちは

多分使っているメソッドの動きの違いが原因だと思います

WebBrowser.NavigateはWEBページを取得する処理なので

取得するまで次の処理に行かないと思います

InvokeMember()は確か引数の値を呼び出すだけですから

呼んだらそれ以降に派生する処理があろうがなかろうが次の処理に行くと思います(派生する処理として、WEBページの表示とか)

使用しているメソッドの動きの違いが原因で起こってるのではないですか?

◎質問者からの返答

ご解答ありがとうございます。私もそう思い、Invokememberの後に十分な空白時間を入れてやっているのですが、やはり取得されるのは移動前の文字列なのです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ