• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:webbrowserの読込完了が反応しない)

webbrowserの読込完了が反応しない

このQ&Aのポイント
  • webbrowserの読み込み後の処理でテキストボックスへの書き込みがうまくいかない問題が発生しています。
  • IsBusyやReadyStateを利用して待機してみたり、メッセージボックスを表示して手動で待ってみたりしましたが、解決策は見つかりませんでした。
  • 読み込み完了を正確に検知してテキストボックスへの書き込みを行いたいと考えています。どのような方法があるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答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 などとしてみてはいかがでしょう

mx3tc0830
質問者

お礼

遅くなりました。 回答ありがとうございます。 おかげさまで希望するコードを書くことが出来ました。 また分からないことが出ると思いますが、お時間が許されましたらお願いいたします。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

そのリンクからどこか他のページに飛んでから希望のページを表示していませんか? MsgBoxを出して手動で続行した場合に表示されるURLと MsgBoxが出たときのURLは同じなのでしょうか

mx3tc0830
質問者

お礼

回答ありがとうございます。 遅くなりましたこと、お詫びいたします。 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