0

在我们的工作数据库中,我们有一个以“projects/Project/Entry/5893”结尾的 http 地址。5893 是工作编号,可以将工作更改为工作。我设置了一个计时器来遍历每个数字,直到它得到这个页面End Page。所以在结束页 HtmlElement 不存在所以它给了我 System.NullReferenceException 并且我知道最后使用的作业编号。但问题是异常没有弹出。有谁知道更简单的方法来做到这一点。抱歉没有显示包含敏感信息的完整网页地址。

    private int a = -1;
    private string NJNumber = File.ReadAllText(@"...\CurrentJobNumber.txt"); 
//The Last Confirmed Number by me and where to start searching from.

    private void NewJob_Click(object sender, EventArgs e)
    {
        HtmlDocument doc = nwJob.Document;

        a = Convert.ToInt32(NJNumber);
        JobNumberTimer.Start();
    }
    private void JobNumberTimer_Tick(object sender, EventArgs e)
    {
        HtmlDocument doc = nwJob.Document;

        string aJN = a.ToString();
        try
        {
            nwJob.Navigate("..../projects/Project/Entry/" + aJN);

            HtmlElement njname = doc.GetElementById("Name");
            a += 1;
        }
        catch(System.NullReferenceException)
        { lblJobNumber.Text = a.ToString();
            JobNumberTimer.Stop();
        }
    }
4

1 回答 1

0

我不认为 HtmlDocument.GetElementById 会抛出 NullReferenceException。

您可以尝试检查 html 文档的正文以查找错误页面上的内容。

doc.Body.InnerText.Contains("somthing to search for")
于 2017-05-03T07:04:36.353 回答