我正在创建一个简单的网络广告。我希望它从特定网页下载数据。但是,单击div后会出现我想要的数据。我试图找到该div,在其上调用click事件,然后下载页面源(显示隐藏数据之后)。 javascript执行后,数据可能会显示在页面上。我必须将WebBrowser.ScriptErrorsSuppressed设置为true,因为会弹出太多错误。目前,我正在使用以下代码:
WebBrowser browser = new WebBrowser();
//Navigate etc...
foreach (HtmlElement el in browser.Document.GetElementsByTagName("div"))
{
if (el.GetAttribute("className").ToString().Equals(className))
{
el.InvokeMember("click");
foreach(HtmlElement child in el.Children)
{
child.InvokeMember("click");
}
}
}
browser.Document.GetElementsByTagName("body")[0].InvokeMember("click");
while (browser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
Debug.WriteLine("State: " + browser.ReadyState);
System.Threading.Thread.Sleep(50);
}
string source = browser.DocumentText;
这不起作用。隐藏的数据不会显示。我尝试使用RaiseEvent代替InvokeMember,并将click更改为onclick。没事。 顺便说一句。代码会调用每个孩子的click,因为我不确定哪个孩子会显示数据。 有人知道出什么问题了吗?