いつもお世話になっております。
VB2005ユーザーです。
WebBrowser内の"submit"を押したあと、違うページに行きたいのですが、
"submit"を押す前に"Navigate"で指定しているページに行ってしまいます。
このようなコードを書いています。
With WebBrowser1
.Navigate("最初のURL")
Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
System.Windows.Forms.Application.DoEvents()
Loop
.Document.Forms(0).InvokeMember("submit")
Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
System.Windows.Forms.Application.DoEvents()
Loop
.Navigate("次の指定URL")
Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
System.Windows.Forms.Application.DoEvents()
Loop
「指定URL」は"submit"により新しいHTMLが生まれるので、その後の作業のためにどうしても"submit"を押したいのですが、上のようなコードですと先に「指定URL」に行ってしまいます。
"submit"をクリックせず、無視してしまうのです。
Navigate("次の指定URL")を外せばクリックしてくれるのですが・・・。
WebBrowserを完全に待機させる方法などが必要なのでしょうか?
宜しくご教授のほどお願い致します。
No.2ベストアンサー
- 回答日時:
InvokeMemberでSubmitしても RedayStateは変化しないようです
Submit直後にDoEventsを実行してもダメみたいですね
Submitが正常に行われたかどうかを知る術はあるのでしょうか?
たとえばSubmit後のページに特定の出来るメッセージ(文言)があるとか
仮に Spanタグなどが追加されるのであれば
dim bFlag as boolean, ss as string
while bFlag = false
try
' 追加されるSpanタグのid属性が mySpanの場合
ss = WebBrowser1.Document.getElementByID("mySpan")
bflag = True
catch ex as Exception
Threading.Thread.Sleep(100)
Application.DoEvents()
End catch
end while
といった具合で待機してみてはいかがでしょう
No.1
- 回答日時:
submit後にDoEventsを入れてみてください。
.Document.Forms(0).InvokeMember("submit")
System.Windows.Forms.Application.DoEvents()
Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
System.Windows.Forms.Application.DoEvents()
Loop
ありがとうございます!!
「System.Windows.Forms.Application.DoEvents()」も場所・コードによっては効果的であるということがわかりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) vba GetAsyncKeyState関数について 1 2023/08/24 12:08
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VC、コンソールアプリ結果の...
-
HTML 全画面表示 リンク先の...
-
プルダウンメニューの開く方向...
-
インラインフレームの中の表示...
-
指定URLを新しいウィンドウで開...
-
プルダウンメニューからリンク→...
-
新しいタブで開かせない方法は...
-
jQueryのlightBox?もしくはFac...
-
form の target(
-
表示中のURLなどをバッチファイ...
-
VBSでIEのウィンドウサイズを強...
-
eclipseでソースを保存すると、...
-
1クリックで、同時に2つのフ...
-
WinAPIでタブ付きのウィンドウ...
-
XMLを作成してもタグしか表示さ...
-
カーソルを合わせると説明を表...
-
preタグがプロの現場であまり使...
-
改行できる・できない入力ボッ...
-
AfterEffectsでイージーイーズ...
-
テキストエリア内の改行禁止
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューの開く方向...
-
新しいタブで開かせない方法は...
-
自分のサイトを開いた時にウィ...
-
指定URLを新しいウィンドウで開...
-
DBからPDFを取得して別画面で表...
-
FindWindowの使い方
-
表示中のURLなどをバッチファイ...
-
HTML 全画面表示 リンク先の...
-
ASP.Net 別ウィンドウを開く・...
-
IEで別サイトをタブで開きたい
-
VC++2010 MFC サイズの最大化に...
-
ハイパーリンクからメニュー無...
-
googleマップをポップアップウ...
-
QT 半透明の画面生成について
-
VC、コンソールアプリ結果の...
-
OpenCVのcvNamedWindowによるウ...
-
_blank?_brank?
-
ホームページビルダーでのドロ...
-
ウインドウを最前面で固定するタグ
-
HTML,js)リンクを新しいタブで...
おすすめ情報