C#Webbrowser按顺序导航链接

时间:2012-03-25 17:22:02

标签: c# navigation browser

我正在尝试自学C#并开始尝试转换我最初在Autoit中编写的程序。

我正在使用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无法导航到新页面?

2 个答案:

答案 0 :(得分:0)

你必须创建一个bool变量来知道第一个进程何时完成。然后开始另一个。 Application.DoEvents()会帮助你。

请注意,所有这些事件都在主线程中运行。

答案 1 :(得分:0)

在您的文档完成事件中,您可以进行链接处理。在链接处理结束时,您可以通过浏览器导航到下一个URL