错误:我的VBScript中应包含语句800A0400

错误:我的VBScript中应包含语句800A0400,vbscript,Vbscript,下面是我一直在开发的自动化脚本的开始。脚本打开IE,转到URL并输入登录凭据。然后我需要检查是否加载了图像(“/codaprod/images/portal.jpg”)。。。我真的不知道太多,我主要是从这里和那里挑选一些东西。在我将下面的代码添加到结尾之前,脚本工作正常 <script type="text/vbscript"> sub loadImage() msgbox "Image is loaded" end sub </script> <img sr

下面是我一直在开发的自动化脚本的开始。脚本打开IE,转到URL并输入登录凭据。然后我需要检查是否加载了图像(“/codaprod/images/portal.jpg”)。。。我真的不知道太多,我主要是从这里和那里挑选一些东西。在我将下面的代码添加到结尾之前,脚本工作正常

<script type="text/vbscript">
sub loadImage()
  msgbox "Image is loaded"
end sub
</script>

<img src="/codaprod/images/portal.jpg" onload="loadImage">

子加载映像()
msgbox“图像已加载”
端接头
这段代码有什么问题吗?或者我的原始代码中缺少了什么

下面是im使用的完整VBScript

strURL="https://WEBADDRESS.com/codaprod/servlet/HTMLCompiler?app=com.coda.common.esi.framework.apps.Logon" 

strUser="USERNAME" 

strPass="PASSWORD" 


 Set oIE = WScript.CreateObject("InternetExplorer.Application","IE_")  
 Timeout=20 'seconds  
 oIE.visible=1 : BeginTimer = Timer  
 oIE.Navigate strURL  
 i=0 : bElementsLoaded=false  
 Set CODA_Element_1 = Nothing
 Do While (oIE.ReadyState<>4 Or Not(bElementsLoaded)) And i < Timeout  
    WScript.Sleep(1000):i=i+1  
    On Error Resume Next 

      Set CODA_Element_1 = oIE.Document.getElementById("user")
      Set CODA_Element_2 = oIE.Document.getElementById("password")
      Set CODA_Element_3 = oIE.Document.getElementById("next")


       If     (Not(CODA_Element_1 is Nothing)) Then  

        bElementsLoaded=true  

       End If 

    On Error Goto 0  

 Loop 

CODA_Element_1.value=strUser 
CODA_Element_2.value=strPass 
CODA_Element_3.Click()  

wscript.sleep 3000

<script type="text/vbscript">
sub loadImage()
  msgbox "Image is loaded"
end sub
</script>

<img src="/codaprod/images/portal.jpg" onload="loadImage">
strURL=”https://WEBADDRESS.com/codaprod/servlet/HTMLCompiler?app=com.coda.common.esi.framework.apps.Logon" 
strUser=“用户名”
strPass=“密码”
设置oIE=WScript.CreateObject(“InternetExplorer.Application”、“IE”)
超时时间=20'秒
oIE.visible=1:BeginTimer=Timer
好的,导航到strURL
i=0:belementsloadded=false
设置尾波元素1=无
执行While(oIE.ReadyState4或不执行(bElementsLoaded))和i<超时
WScript.Sleep(1000):i=i+1
出错时继续下一步
Set CODA\u Element\u 1=oIE.Document.getElementById(“用户”)
设置CODA\u元素\u 2=oIE.Document.getElementById(“密码”)
设置CODA\u元素\u 3=oIE.Document.getElementById(“下一步”)
如果(不是(尾波元素1什么都不是)),那么
belementsloadded=true
如果结束
错误转到0
环
尾波元素值=strUser
尾波元素值=strPass
尾波元素3.点击()
wscript.sleep 3000
子加载映像()
msgbox“图像已加载”
端接头
感谢阅读,请随时指出您的任何提示和技巧。
再次感谢这些是HTML标记
等,不属于您的脚本文件

如果要检查图像是否已加载,则需要使用与先前代码类似的代码,该代码重复尝试引用页面中的img元素。如果这个img没有id,那么它会变得更复杂一些

例如,您可以使用
getElementsByTagName(“IMG”)
获取所有图像的集合。如果您知道它是第三个,那么:

getElementsByTagName("IMG")[2]
将(在JavaScript中)获取对它的引用。我不知道这段代码在VBScript中需要做哪些调整,可能是圆括号(2)。事实上,它可能是VBScript中的(3)索引,因为许多VBS集合是从1而不是从0索引的。[编辑:我相信
getElementsByTagName
在VBS中仍然是零索引的。]


如果您不知道哪个特定的IMG元素包含此图像,那么您需要使用
getAttribute()
在集合(IMG标记的集合,如上所述)中循环检查其
src
属性
querySelector
是获取具有此src属性的元素的一种可能的替代方法。

若要解决此问题,请尝试删除原始添加项并使用此选项:

If GetImgStatus("/codaprod/images/portal.jpg", oIE) = true Then
MsgBox("Image is loaded")
End If



Function GetImgStatus(source, ie)
Dim i

For Each i in ie.Document.GetElementsByTagName("img")
If i.src = source Then
GetImgBySource = i.complete
End If

End Function
从HTML文档中运行脚本时,将使用脚本标记


干杯,LC

首先谢谢你花时间回复:)我想我明白你的意思。我还有一段代码没有显示任何错误,但我还说图像没有加载。有IDE吗?将i=0的imgs=oIE.Document.getElementsByTagName(“IMG”)设置为imgs.length-1,如果imgs(i).src=“/codaprod/images/portal.jpg”,则imgFound=True结束,如果下一步是imgFound,则wscript.echo“Image found”否则wscript.echo“Image Not found”结束,如果在循环内回送出每个
src
;这可能是因为它们的格式与“/folder/images/portal.jpg”稍有不同。对不起,我不明白?我可以在源代码中看到图像是/codaprod/images/portal.jpg。你说的格式稍有不同是什么意思?谢谢你为什么不呼应一下src的?这是最简单的检查方法。我的意思是,例如,它可能以“/”开头,或者删除第一个反斜杠,或者以完整(绝对)路径出现。我已经尝试过删除/并使用完整绝对路径,但它仍然返回时未找到图像。当你说要回显Src时,你能给出一个代码示例吗?我真的是一个初学者,真的很感谢你的帮助lol谢谢!嗨,当我使用这个时,我得到了错误预期语句?谢谢你的帮助我在这件事上已经坚持了好几个星期了哈哈