以下是我一直在努力的自动化脚本的开始。该脚本打开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">
感谢您的阅读,请随时指出您提供的任何提示和技巧。 再次感谢
答案 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