我的程序中有这段代码:
foreach (HtmlElement chat in wb.Document.GetElementsByTagName("input"))
{
if (chat != null)
{
if (chat.InnerText.Equals("Chat"))
{
chat.InvokeMember("Click");
loggedIn = true;
break;
}
}
}
一旦到达if(chat.InnerText.Equals("Chat"))
,就会抛出NullReferenceException错误,如下面的ScreenShot所示:
有谁知道为什么它会给我这个?我甚至将if (chat != null)
代码放在那里,它仍然会抛出它。
这是网站代码:
<div class="ContentTab">
Chat
</div>
答案 0 :(得分:2)
Chat.InnerText为空,即使聊天不是。试试这个:
foreach (HtmlElement chat in wb.Document.GetElementsByTagName("input"))
{
if (chat != null && chat.InnerText != null && chat.InnerText.Equals("Chat"))
{
chat.InvokeMember("Click");
loggedIn = true;
break;
}
}
答案 1 :(得分:2)
InnerText
变量的属性chat
为空
答案 2 :(得分:1)
试
if (chat.InnerText == "Chat")
{
chat.InvokeMember("Click");
loggedIn = true;
break;
}
我相信.Equals检查对象相似性,operator ==检查引用相等性。
答案 3 :(得分:1)
你可以尝试检查对象本身是否为空 试试这个
foreach (HtmlElement chat in wb.Document.GetElementsByTagName("input"))
{
if (chat != null && (!chat.isEmpty())&& chat!="")
{
if (chat.InnerText.Equals("Chat"))
{
chat.InvokeMember("Click");
loggedIn = true;
break;
}
}
}