Visual Basic:设置没有ID的Web元素的属性

时间:2013-09-26 13:16:37

标签: vba elements

HTML:

<input type="text" size="15" maxlength="79" value="" name="username">

如您所见,没有ID。上面的HTML是一个文本框,我想在我的代码启动网页后立即自动填写我的值。

这是我发现的:

WebBrowser1.Document.Forms(0).GetElementsByTagName("username")(0).SetAttribute("value", (Text))

但是我发现了这个错误:

Value of '0' is not valid for 'index'. 'index' should be between 0 and -1.
Parameter name: index

我做错了什么?

2 个答案:

答案 0 :(得分:1)

这不会找到任何元素:

WebBrowser1.Document.Forms(0).GetElementsByTagName("username")

“标记名称”并不表示name属性的值,它表示HTML标记本身的名称。像这样:

WebBrowser1.Document.Forms(0).GetElementsByTagName("input")

当然,这可能会返回多个匹配的元素,因此您需要进一步确定要修改的元素。关键是您应该进行一些错误检查以确保它找到任何内容,因为尝试索引空集合将导致错误:

WebBrowser1.Document.Forms(0).GetElementsByTagName("username")(0)

由于集合没有元素,因此索引0没有任何内容。

答案 1 :(得分:0)

可能你可以尝试

Me.WebBrowser1.Document.GetElementByName("username").SetAttribute("Value", txtUsername.Text)