这基本上就是我要做的事情,我只是想在该网站上的用户创建一个项目/图像时发出警报,它会通过一条消息提醒我。
所以我抓住这些元素,但似乎没有任何帮助?
Id=114613970
Do
WScript.Sleep 1100
frame.Visible = True
frame.Navigate ("http://www.roblox.com/Item.aspx?ID=" & Id)
WScript.Sleep 100
set item = frame.Document.getElementByID("ctl00_cphRoblox_CreatorHyperLink")
if frame.Document.getElementByID("ctl00_cphRoblox_CreatorHyperLink") = "<a id='ctl00_cphRoblox_CreatorHyperLink' class='stat notranslate' href='User.aspx?ID=10744036'>" & thexmarcoxz & "</a>" Then
WScript.Echo "ROBLOX: ASSET DECAL"
End if
Id = Id + 1
Loop
我还是新手,但谢谢!
答案 0 :(得分:1)
getElementById()
返回一个对象(DOM树中的选定节点)。虽然此对象表示HTML标记,但它与带有HTML标记的字符串不同。但是,您可以通过对象的outerHtml
属性检索该字符串。试试这个:
set item = frame.Document.getElementByID("ctl00_cphRoblox_CreatorHyperLink")
if item.outerHtml = "<a id='ctl00_cphRoblox_CreatorHyperLink' class='stat notranslate' href='User.aspx?ID=10744036'>" & thexmarcoxz & "</a>" Then
WScript.Echo "ROBLOX: ASSET DECAL"
End if
另一个问题是你的循环是无限的,即它没有终止条件会导致循环在某个时刻结束。因此,它将继续无休止地增加Id
。如果您希望在找到第一个匹配项时终止循环,则需要执行以下操作:
Id=114613970
Do
WScript.Sleep 1100
frame.Visible = True
frame.Navigate ("http://www.roblox.com/Item.aspx?ID=" & Id)
WScript.Sleep 100
set item = frame.Document.getElementByID("ctl00_cphRoblox_CreatorHyperLink")
Id = Id + 1
Loop Until item.outerHtml = "<a id='ctl00_cphRoblox_CreatorHyperLink' class='stat notranslate' href='User.aspx?ID=10744036'>" & thexmarcoxz & "</a>"
WScript.Echo "ROBLOX: ASSET DECAL"
我刚注意到的另一件事,navigate
异步运行,所以你必须等待操作完成:
frame.Navigate ("http://www.roblox.com/Item.aspx?ID=" & Id)
While frame.Busy : WScript.Sleep 100 : Wend
答案 1 :(得分:0)
不是正面,但“文档”通常是小写:document.getElementById https://developer.mozilla.org/en-US/docs/DOM/document.getElementById