我希望在我的vbs中得到值'24',它设置为id为'test'的div,
我的Html脚本是:
<html><body>
Welcome <br /> Value: = <div id="test">24</div>
<br> Name: <p id="name">Someone</p><br>
</body></html>
我的Vbs是:
on error resume next
set ie=createobject("internetExplorer.Application")
ie.navigate "http://localhost/h/getid.html"
ie.visible = false
wscript.sleep 2000
dim val
set val =ie.document.getElementsById("test").item(1).value
wscript.echo "value is= "& val
但是输出没有显示值24,它只是回显 - 值是=
我怎样才能获得这个价值?我是否需要对HTML代码或vbs进行任何更正?
请帮助我,谢谢
答案 0 :(得分:0)
您似乎需要使用getElementsById
更改getElementById
。
答案 1 :(得分:0)
您不应该在此处提出一个问题,该问题涉及具有活动“On Error”的脚本 继续下一步“。这是浪费每个人的时间。通过不隐藏错误/注意 错误信息,你可以自己解决问题(大部分时间)。
删除/取消OERN,你得到
set val =ie.document.getElementsById("test").item(1).value
==>
... runtime error: Object doesn't support this property or method: 'ie.document.getElementsById'
即使你不认识拼写错误,谷歌搜索“html dom getelementsbyid” 将重新路由到“Ergebnissefür[ie results for html dom getelementbyid”]。 请按照第一个链接之一(e.g.)来了解有关该方法的知识。
那样下一个错误:
set val =ie.document.getElementById("test").item(1).value
==>
... runtime error: Object doesn't support this property or method: 'ie.document.getElementById(...).item'
不会让你大吃一惊。元素不是项目/元素的集合。 [顺便说一句:你不应该 在没有至少基本测试的情况下在这里发布答案。
下一个版本
set val =ie.document.getElementById("test").value
应该引发一个红色警报:一个带有Set的赋值,但是一个想要成为a的正确值 对象的属性。这是完全错误的。所以试试:
set elm =ie.document.getElementById("test") ' at least a decent assignment
val = elm.value
==>
... runtime error: Object doesn't support this property or method: 'elm.value'
像“html dom div text”这样的Google查询会指向“innerText” 及其功能:1或2
最后:
set elm =ie.document.getElementById("test") ' at least a decent assignment
val = elm.innerText
成功!
cscript 23971918.vbs
value is= 24
答案 2 :(得分:0)
有人提到你应该将getElementsById更改为getElementById(没有&#39; s&#39;),但我也认为你应该在这一行中丢失.item(1): set val = ie.document.getElementsById(&#34; test&#34;)。item(1).value
如果我没记错,如果你的对象是一个集合,使用.item(#)是合适的,就像使用.getElementsByTagName返回的东西一样,但.getElementById应该只返回一个项目。
希望有所帮助!