执行操作时,它会持续一段时间以显示此操作成功的消息。在这里,我使用一个函数来测试消息是否出来:
For i = 0 To NumberOfiframe - 1
Set objPage = iframe(i).Object
Set objTag = objPage.GetElementsByTagName("span")
intTotalLink = objTag.Length - 1
For intCtr = 0 to intTotalLink
If objTag(intCtr) = null Then
Exit Function
End If
strContent = objTag(intCtr).InnerText
endPosition = InStr(1, strContent, "Not all transport requests yet")
If endPosition > 0 then
TRNotReleased = FALSE
Exit for
End If
Next
Next
当消息出来时,QTP会弹出一个显示“Object Required:objTag(..)”的窗口,我的观点是当Web UI发生变化时,QTP无法找到设置对象。
由于邮件中包含每项操作的不同信息,我是否有任何解决方案可以解决此问题?
提前致谢。
答案 0 :(得分:1)
使用objPage.GetElementsByTagName
时,您将获得对页面上DOM对象的引用,这不是QTP测试对象,而是属于浏览器的对象。当浏览器中的DOM更改您持有的对象时,它将停止生效。
如果要在HTML更改后访问该对象,则必须要求QTP再次检索它。也许是这样的:
For i = 0 To NumberOfiframe - 1
Set objPage = iframe(i).Object
Set objTag = objPage.GetElementsByTagName("span")
intTotalLink = objTag.Length - 1
For intCtr = 0 to intTotalLink
' Get the collection of objects again
Set objTagCurr = objPage.GetElementsByTagName("span")
Set currObj = objTagCurr(intCtr)