-1

这基本上就是我想要做的事情,我只是想在该网站上的用户创建一个项目/图像时发出警报,它会通过消息提醒我。

所以我抓住了元素,但似乎没有任何帮助?

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

我还是新手,但谢谢!

4

2 回答 2

2

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
于 2013-05-16T00:13:50.947 回答
0

不是肯定的,但“文档”通常是小写的:document.getElementById https://developer.mozilla.org/en-US/docs/DOM/document.getElementById

于 2013-05-15T23:33:31.517 回答