問題は次のとおりです。
WebBrowser.OnNavigateComplete2
イベントに反応してドキュメントのコンテンツを解析し、正確な情報を取得するフックが IE にあります。
そのドキュメントにはフレームが含まれているため、HTMLDocument.frames
. それぞれについて、document.body.outerHTML プロパティを調べてコンテンツを確認します。
問題は、探している文字列がそこに表示されないのに対し、フィナーレ ページに表示されることです。それで、私は間違った場所を探していますか?ページが完全にロードされたときに表示される場合は、ある時点でダウンロードされていますよね? しかし、どのオブジェクトを見ればよいのでしょうか?
ところで、それが重要かどうかはわかりませんが、検索しているページは ASP.NET アプリケーションからのものです。
public void OnNavigateComplete2(object pDisp, ref object url)
{
document = (HTMLDocument)webBrowser.Document;
mshtml.FramesCollection frames = document.frames;
for (int i = 0; i < frames.length; i++)
{
object refIdx = i;
IHTMLWindow2 frame = (IHTMLWindow2)frames.item(ref refIdx);
string frameContent = frame.document.body.outerHTML;
}
}
助けてくれてありがとう。
@ramsこのイベントはページごとに何度も起動されるため、探しているものをキャッチできなくても、フレームが読み込まれるたびに発生すると考えました。そうでない場合、フレームのコンテンツをキャッチするイベントは何ですか?
私がやりたいのは、正確なフレームに関する正確な情報を検出して保存することです。後で、何らかのユーザー アクションによってトリガーされた Web ページが読み込まれ、フレームの解析から取得した情報が必要になります。