![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
何度も質問してすみません。
どうしても自力では解決できないことがありましたので質問させていただきます。
webbrowserでの読み込み後の処理についてなのですが、現在表示されているページ内のリンクを自動でクリックし、次のページにあるテキストボックス内にテキストを打ち込みたいのです。
While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
を置いているのですが、どうやらこれが機能せずにテキストボックスへの書き込みがうまくいきません。
試しに、上記の記載の後ろに
msgbox("待ってみる")
と記載してみると、前ページのリンクをクリックした瞬間、メッセージボックスが表示されます。
メッセージボックスのOKボタンをしばらく待って手動でOKをクリックするとテキストボックスへのテキストの書き込みも正常に行われます。
ほかには
Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
System.Windows.Forms.Application.DoEvents()
Loop
や
System.Threading.Thread.Sleep(1000)
も試してみたのですが、sleepに関してはwebbrowserの読込自体が止まってしまいます。
何か良い方法はないのでしょうか?
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
WebBrowserのDocumentComplatedで処理を待ち受けたほうが良いかもしれないですよ
WebBrowser1.Document.All.GetElementsByName("ex11")
(1).InvokeMember("click") 'ボタンクリック
でクリック後に飛ぶURLを フォームクラスの変数に代入しておいて
DocumentComplatedイベントで
if e.Url.AbsolutePath = myUrl.AbsolutePath then
WebBrowser1.Document.All.GetElementsByName("ttl")(0).InnerText = "aaaa"
myUrl = Nothing
end if
などとしてみてはいかがでしょう
遅くなりました。
回答ありがとうございます。
おかげさまで希望するコードを書くことが出来ました。
また分からないことが出ると思いますが、お時間が許されましたらお願いいたします。
No.1
- 回答日時:
そのリンクからどこか他のページに飛んでから希望のページを表示していませんか?
MsgBoxを出して手動で続行した場合に表示されるURLと
MsgBoxが出たときのURLは同じなのでしょうか
回答ありがとうございます。
遅くなりましたこと、お詫びいたします。
URLはひとつのみです、ちなみに
WebBrowser1.Document.All.GetElementsByName("ex11") 'ボタンクリック
(1).InvokeMember("click")
Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
System.Windows.Forms.Application.DoEvents()
Loop '待つ
WebBrowser1.Document.All.GetElementsByName("ttl")(0).InnerText = "aaaa"
MsgBox("読込どうかな")
このような記載です。
ボタンをクリックした後、読込が終わる前に"aaaa"と"どうかな"の部分が走ってしまうので、"aaaa"は記載されずに終わります。
この2行を逆にし、先にmsgboxを読み込むと問題なくaaaaが入力されるのですが、完全自動にしたいので、それは避けたいのです。
http://oshiete.nikkeibp.co.jp/qa2599810.html
このような回答も見つけたのですが、確かに私の記載したプログラムの前にはいくつかのwebサイトの移動がありますが、読込待ちがうまくいかないのは、この部分だけなんです。
非completeの指定の仕方も良くわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 別ブックからコピペしたい...
-
【ExcelVBA】値を変更しながら...
-
Outlookの「受信日時」「件名」...
-
ExcelVBAマクロで実行した時の疑問
-
【ExcelVBA】インデックスが有...
-
VBA 別ブックから条件に合うも...
-
[VB.net] ボタン(Flat)のEnable...
-
Excel 範囲指定スクショについ...
-
郵便番号検索APIにてget Elemen...
-
2つのマクロでチェックボックス...
-
ExcelVBA シート名を複数セルか...
-
ファイル名の日付について教え...
-
VBA ユーザーフォーム ボタンク...
-
配列のペースト出力結果の書式...
-
Excel VBAで値を変えながら、pd...
-
近似した文字列を置換するエク...
-
Outlookにて既にウィドウ単体で...
-
A列に記載されているフォルダ...
-
VBAの間違い教えて下さい
-
Vba ファイル書き込み時に書き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホでボタンがhoverの状態か...
-
HTMLのリンクの色をクリックす...
-
リロードした時にページの一番...
-
画面のどこかをクリックすると
-
被リンクを無料で増やすための...
-
Webサイト内に埋め込んだmp4動...
-
iFrame内の変数を、親フレーム...
-
ブラウザの戻るを押しても戻ら...
-
excel VBA でjava のボタンを押...
-
Strutsでページネーションを実...
-
逆マウスストーカーってあります?
-
OKWaveからの被リンクは有効?...
-
WEBページのジャンプ。素早く行...
-
webbrowserの読込完了が反応しない
-
戻るボタンで戻れない
-
リンク登録代行業者に依頼され...
-
リンク切れを判断する方法
-
jquery loadでページを読み込...
-
一回払いのみの被リンクサービ...
-
『工事中』の素材
おすすめ情報