我想教自己C#并开始我试图转换我最初写在Autoit中的程序。C#浏览器按顺序导航链接
我正在使用Windows应用程序窗体,程序假设将一个或两个链接作为输入。导航到这些页面,从表格中获取一些链接,然后访问每个页面以获取一些内容。
如果只输入一个链接,它似乎转到那个页面,并从表中获取链接,就像它假设的那样。如果输入两个链接,它似乎只抓取第二个表中的链接。
因此,如果两个环节都通过这种方法
private void getPageURLList(string site1, string site2)
{
getPageURLList(site1);
getPageURLList(site2);
}
调用被调用同样的方法时,只有一个链接
private void getPageURLList(string site)
{
webBrowser.DocumentCompleted += createList;
webBrowser.Navigate(site);
}
我敢肯定的问题是“导航”在createList甚至第一次启动之前第二次被调用。
我使用WebBrowser的原因是因为这些页面使用Javascript排序表中的链接,所以HTTPRequests和HTMLAgilityPack似乎无法获取这些链接。
所以我想我的问题是:我怎么能让我的WebBrowser浏览到一个新的页面,直到我完成了我在当前页面上做的事情?
我尝试过使用bool来做到这一点,但是它不起作用,或者我把它放在错误的地方。我将不得不查看Application.DoEvents()以查看是否解决了我的问题。文档中已完成 – user1290695 2012-03-25 17:46:44
:jobDone = true;并在代码getPageURLList(site1); jobDone = false; (!jobdone){ApplicationDoEvents();} getPageURLList(site2);搜索它,你会发现它 – ddarellis 2012-03-25 17:47:58
这些似乎已经修复它。它正在运行这两个链接。它第二次运行第二个链接,但这可能是我的代码的问题。 – user1290695 2012-03-25 18:20:40