首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QTP中的动态等待

QTP中的动态等待
EN

Stack Overflow用户
提问于 2015-02-19 20:58:12
回答 2查看 412关注 0票数 1

我正在使用QTP测试网站,以确保所有链接都在脚本访问的页面上工作/我正在使用QTP具有的标准检查点执行此操作。我遇到的一个问题是,由于页面上的图片和其他web元素,一些页面需要花费大量的时间来加载。当页面需要很长时间加载时,它有时会导致检查点失败,因为脚本不会在导航离开之前捕获页面上的所有链接(或者至少这是我的理解)。我通过在所有页面上插入一个等待(10)来解决这个问题,这确实在98%的时间内有效(有些页面有可怕的延迟时间)。但我想知道有没有什么方法可以写一个脚本,让它等到页面完全加载后再移动到检查点?

我的代码看起来像这样

代码语言:javascript
运行
复制
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个页面,并需要几个小时才能运行,所以我希望如果我可以在每个页面上使用静态等待,我可以提高性能。

EN

回答 2

Stack Overflow用户

发布于 2015-02-19 21:08:36

使用ReadyState枚举:(MSDN page)

代码语言:javascript
运行
复制
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
票数 1
EN

Stack Overflow用户

发布于 2015-02-20 14:32:52

添加检查点时,您还可以将Checkpoint Timeout配置为n number of seconds,默认情况下设置为10秒。

例如,如果您将此设置为20秒,并且如果您的检查点在10秒内通过,则QTP将立即进入下一步。如果检查点在20秒内未通过,则它将标记为失败。

尽量避免使用Wait语句,也可以尝试使用.Sync.Exist等其他选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28607055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档