VB.NET GetElementById innertext

时间:2011-08-11 14:00:40

标签: vb.net

好的,这是我的带有ID的html行:

<id="accounttype" class=inline-block"><strong><?=$_SESSION['accounttype']?></strong><br>

这是它抓住的东西 当然,虽然这变成了文字

<?=$_SESSION['accounttype']?>

这是我的vb.net代码

  TextBox4.Text = WebBrowser1.Document.GetElementById("accounttype").InnerText

当我运行程序时,我收到此错误

Object reference not set to an instance of an object.

2 个答案:

答案 0 :(得分:2)

我没有看到ID为accounttype的元素。我看到的只是一个ID为newssite的元素。 GetElementById返回属性id等于您传递的属性的元素。例如:

<div id="accounttype">Hello World</div>

VB.NET代码:

TextBox4.Text = WebBrowser1.Document.GetElementById("accounttype").InnerText

您可能没有包含该代码;但是你也应该确保WebBrowser在尝试使用之前已经完全加载了它的内容。

答案 1 :(得分:2)

如何调试“未将对象引用设置为对象的实例”。错误

如果您有类型声明

A.B = C.D.E.F

如果A为Nothing,如果C为Nothing,如果C.D为Nothing或C.D.E为Nothing,则会出现此错误。

因此,要调试此错误,请将您的语句拆分为:

Dim d = C.D
Dim e = d.E
Dim f = e.F
A.B = f

现在发生错误的行将告诉你哪个对象是Nothing。然后检查创建此对象的方法调用的文档,以找出此方法调用返回Nothing的情况。

如果在这样做之后,您仍然不明白为什么会这样,请返回StackOverflow并发布一个新问题,添加您获得的信息(例如:为什么WebBrowser1.Document.GetElementById("accounttype")返回Nothing即使我的文档中有一个ID为accounttype的元素?)。