0

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

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

4

2 回答 2

2

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

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

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

getElementsByTagName("IMG")[2]

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

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

于 2013-06-16T20:01:44.837 回答
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

于 2013-06-16T22:23:23.377 回答