为什么我的WebBrower类返回Null引用异常?

时间:2017-06-03 04:54:02

标签: c#

我需要帮助修复此错误或可能获得" Start Viewer"按钮点击了另一种方式。

private void button1_Click(object sender, EventArgs e)
{
    {
        webBrowser1.Navigate(new Uri(textBox1.Text));
        HtmlDocument doc = webBrowser1.Document;

        HtmlElementCollection classButton = webBrowser1.Document.All;
        foreach (HtmlElement element in classButton)
        {
            if (element.GetAttribute("className") == "titre_12")
            {
                element.InvokeMember("click");
            }
        }
    }
    {
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Interval = 1000; // 1 second
        timer1.Start();
        label2.Text = counter.ToString();
    }
}

我得到"类型' System.NullReferenceException'的第一次机会异常。发生在VPS Web Bot.exe"

对于线......

HtmlElementCollection classButton = webBrowser1.Document.All;

我试图让我的机器人点击启动查看器,但HTML没有ID,所以我试图按类获取我的元素。

Screen shot of HTML

我想让它点击"启动查看器"在https://www.websyndic.com/wv3/?qs=MTAzMDE5Nw==

在编程方面,我是自学成才,所以我不会总是理解正确的术语。我提前道歉。

我的帖子被标记为重复但是它所引用的帖子是我已经尝试过的,但它没有用。

1 个答案:

答案 0 :(得分:0)

解决方案

  

使用WebBrowser.DocumentCompleted

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.DocumentCompleted += (se, ev) => 
    {

        // the rest of your code

    };

    webBrowser1.Navigate("www.domain.com");
}

额外备注

将您的个人资料括在{}

{
    webBrowser1.Navigate(new Uri(textBox1.Text));
}
{
    HtmlDocument doc = webBrowser1.Document;
    HtmlElementCollection classButton = webBrowser1.Document.All;
    ...
}

你将顶部与底部隔离开......我确定你的意思是......

{
    webBrowser1.Navigate(new Uri(textBox1.Text));
    HtmlDocument doc = webBrowser1.Document;
    HtmlElementCollection classButton = webBrowser1.Document.All;
    ...
}