
何度も質問してすみません。
どうしても自力では解決できないことがありましたので質問させていただきます。
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ランキング
-
Excel VBA セルの値がおかしいです
-
VBA セル間のリンク修正につい...
-
VBAでCOPYを繰り返すと、処理が...
-
VBAから書き込んだ条件付き初期...
-
WindowsのOutlook を VBA から...
-
マクロの記録を使用したマクロ...
-
vbsでのwebフォームへの入力制限?
-
ダブルクリックで貼り付けた画...
-
エクエルのVBAコードについて教...
-
ExcelのVBAコードについて教え...
-
vbs ブック共有を解除
-
VBAでFOR NEXT分を Application...
-
Excelのマクロについて教えてく...
-
Vba WorkBooks.Openについて教...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
[Excel VBA]特定の条件で文字を...
-
【VBA】値を変更しながら連続で...
-
vba textboxへの入力について教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Webサイト内に埋め込んだmp4動...
-
HTMLのリンクの色をクリックす...
-
スマホでボタンがhoverの状態か...
-
Googleフォームの回答リンクに...
-
jquery loadでページを読み込...
-
被リンクを無料で増やすための...
-
検索にヒットしないページ
-
ページ内リンクでアコーディオ...
-
リロードした時にページの一番...
-
WEBサイトが複数ページにわたっ...
-
戻るボタンの作成
-
オールFlashサイトでのSEO対策
-
タイトルをmouse overするとア...
-
サーチコンソールで被リンクを...
-
Strutsでページネーションを実...
-
『工事中』の素材
-
webbrowserの読込完了が反応しない
-
リンク切れを判断する方法
-
個人hp 外部ページへのリンク...
-
リンク先を新しいタブで開けな...
おすすめ情報