0
我有一个网页,带我到另一个页面,其中包含有关按学生ID搜索的学生信息。我有一个学生ID列表。我应该从第二页中检索学生信息并将其存储在数据表中。这里是代码暂停循环,直到WebBrowser导航并加载文档
string id { get ; set ;}
int lCount;
List<string> ids = new List<string>{"A1201", "A1202", "A1203"};
Datatable result = new Datatable();
private void button1_Click(Object sender, EventArgs e)
{
for(int i = 0 ; i < totalids ; i++)
{
lCount = i;
webbrowser1.Navigate("http://www.sksit.com");
webbrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted)
}
}
private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if(e.URL.toString() == "http://www.sksit.com")
{
HtmlElement el = webbrowser1.Document.GetElementById("sid");
el.SetAttribute("value", ids[lCount]);
HtmlElement cl = webbrowser1.Document.GetElementById("Search");
cl.InvokeMember("click");
}
elseif(e.URL.toString() == "http://www.sksit.com/studentprofiles")
{
HtmlElement el = webbrowser1.Document.GetElementById("studentinfotab");
string info = el.InnerHtml;
string[] tableinfo = info.Split(' ');
DataRow trow = result.newDataRow();
for(int j =0 ; j < tableinfo.Count() ; j++)
{
trow[j] = tableinfo[j];
}
result.Rows.Add(trow);
}
}
当我看到执行后的结果表时,它显示没有数据。这个代码工作正常,当一个单一的ID传递。当它被放入一个循环时,没有看到数据,并且它显示lCount为2.请关注如何暂停循环直到它完成加载和解析。谢谢。
你正在浏览相同的Web浏览器来下循环按钮的客户端事件totalids时间..它似乎是错误的 – 2014-11-04 19:16:23
你跟Web浏览器控件绑定...而不是使用开源图书馆..专为网络报废 – 2014-11-04 19:17:12
我visted http://www.sksit.com,但没有找到与“sid”元素.. – 2014-11-04 19:19:39