错误:我的VBScript中的预期语句800A0400

时间:2013-06-16 19:50:37

标签: vbscript

以下是我一直在努力的自动化脚本的开始。该脚本打开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">

这段代码是否有问题,或者我在原始代码中遗漏了什么?

以下是我正在使用的完整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">

感谢您的阅读,请随时指出您提供的任何提示和技巧。 再次感谢

2 个答案:

答案 0 :(得分:2)

这些是HTML标记<script>等,并且不属于您的脚本文件。

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

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

getElementsByTagName("IMG")[2]

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

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

答案 1 :(得分:0)

要解决此问题,请尝试删除原始添加内容并使用此功能:

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