我正在使用QTP测试网站,以确保所有链接都在脚本访问的页面上工作/我正在使用QTP具有的标准检查点执行此操作。我遇到的一个问题是,由于页面上的图片和其他web元素,一些页面需要花费大量的时间来加载。当页面需要很长时间加载时,它有时会导致检查点失败,因为脚本不会在导航离开之前捕获页面上的所有链接(或者至少这是我的理解)。我通过在所有页面上插入一个等待(10)来解决这个问题,这确实在98%的时间内有效(有些页面有可怕的延迟时间)。但我想知道有没有什么方法可以写一个脚本,让它等到页面完全加载后再移动到检查点?
我的代码看起来像这样
Browser(Blah).Navigate URL
wait(10)
Browser(blah).Page(X).Check Checkpoint(K)
Browser(Blah).Navigate URL2
wait(10)
Browser(blah).Page(X).Check Checkpoint(K2)根据我正在运行的脚本,它可以检查多达200个页面,并需要几个小时才能运行,所以我希望如果我可以在每个页面上使用静态等待,我可以提高性能。
发布于 2015-02-19 21:08:36
使用ReadyState枚举:(MSDN page)
Enum READYSTATE
READYSTATE_UNINITIALIZED = 0
READYSTATE_LOADING = 1
READYSTATE_LOADED = 2
READYSTATE_INTERACTIVE = 3
READYSTATE_COMPLETE = 4
End Enum
With Browser(blah)
.Navigate URL
'// Wait until page has fully loaded.
While Not .ReadyState = READYSTATE_COMPLETE
DoEvents
Wend
'// Rest of code here...
End With发布于 2015-02-20 14:32:52
添加检查点时,您还可以将Checkpoint Timeout配置为n number of seconds,默认情况下设置为10秒。
例如,如果您将此设置为20秒,并且如果您的检查点在10秒内通过,则QTP将立即进入下一步。如果检查点在20秒内未通过,则它将标记为失败。
尽量避免使用Wait语句,也可以尝试使用.Sync、.Exist等其他选项。
https://stackoverflow.com/questions/28607055
复制相似问题