C# WebBrowser 遍历网页上的框架
时间:2011-02-25 来源:思想在飞
// webBrowser先设置Url,然后填充数据(账户和密码)实现自动登录OA,等网站加载完毕之后开始分析框架
// 这里我把框架的结构放到了树形控件TreeView上
private Hashtable htFrame = new Hashtable(); // key:框架名 value:框架对象
private Hashtable htFrameContent = new Hashtable(); // key:框架名 value:框架内的Html代码
private void button1_Click(object sender, EventArgs e)
{
treeView1.Nodes.Clear();
htFrame.Clear();
htFrameContent.Clear();
treeView1.Nodes.Add("Frames"); // 根节点
FillFrame(treeView1.Nodes[0],webBrowser1.Document.Window.Frames); // 调用
}
// 遍历所有框架
private void FillFrame(TreeNode tn, HtmlWindowCollection hwc)
{
if (hwc == null) return;
foreach (HtmlWindow hw in hwc)
{
TreeNode tmpNode = tn.Nodes.Add(tn.Text + "--" +hw.Name); // 防止不同框架内的子框架同名
htFrame.Add(tmpNode.Text, hw); // 框架名和框架对象
htFrameContent.Add(tmpNode.Text, hw.Document.Body.InnerHtml); // 框架名和框架内的Html
if (hw.Frames.Count > 0) FillFrame(tmpNode, hw.Frames);
}
}
效果图: