51Testing软件测试论坛

标题: qtp回放时,如当前页面未加载完而影响下一步的操作该如何处理 [打印本页]

作者: windymeng    时间: 2009-11-17 16:57
标题: qtp回放时,如当前页面未加载完而影响下一步的操作该如何处理
QTP回放时, 如当前页面未加载完而影响下一步的操作该如何处理?用wait的方式不是很好,因为页面的加载速度有时跟网速有些关系,如何进行有效的判断?
作者: hsjzfling    时间: 2009-11-17 17:15
处理js加载最简单有效的方法就是wait了,大不了多wait会儿,其它方法也不是没有,比较麻烦,效果也不是很好
作者: windymeng    时间: 2009-11-17 17:54
Browser("NaborsNet-XXX").Page("NaborsNet-XXX").Sync

sync 好像也是模拟页面加载的过程,跟wait的方式有何不同呢
作者: hsjzfling    时间: 2009-11-17 17:59
sync是等待页面元素同步,但不能判断js是否处理完,wait就是傻等足够长的时间
作者: windymeng    时间: 2009-11-17 18:08
还想请问个问题, 用save as 的方式是否可以完全移植脚本?为何我相同的脚本,在A目录下可以运行,save as到B目录下,运行就存在问题呢?
作者: hsjzfling    时间: 2009-11-17 18:19
只移植和QTP相关的所有文件,其它的比如Text,Excel之类的数据文件等等是不会被保存过去的,另外看脚本中最好使用相对路径。

具体问题原因要看报什么错了。
作者: windymeng    时间: 2009-11-17 18:49
那要想把A目录下的脚本放到B目录下执行,最保险的方式是什么样的?直接把A目录下的所有文件放到B目录下? 还有个问题, object repository中,各对象中的title, name究竟有何作用? 如果一个网页的名称是动态的,如要显示登陆人的名称,可以直接改title为 *的形式吗?
作者: hsjzfling    时间: 2009-11-18 09:57
最保险的当然是copy整个Test目录了,特别注意一点,虚拟对象是没有放在Test中的,如果要copy到其它机器,注意单独将之copy过去。

对象库中的对象属性是用来标识对象的特征的,就像要在51testing论坛中要找个人,如果知道id是windymeng,那很快就找到了,或者知道他发了一篇标题为"qtp回放时,如当前页面未加载完而影响下一步的操作该如何处理"的帖子,那也能搜索出来,只要能通过这些属性唯一的识别到一个对象,那你怎么折腾都可以。当然你也要多熟悉下正则表达式,以便于折腾的更得心应手
作者: windymeng    时间: 2009-11-19 12:34
在脚本中有以下这段脚本,是点击网页主菜单myPurchasing下的workqueue菜单
(1)Browser("XXX Test - ABRAHAM,").Page("XXX Test - ABRAHAM,").Link("myPurchasing").MouseOver
wait 5
(2)Browser("XXX Test - ABRAHAM,").Page("XXX Test - ABRAHAM,").Link("WorkQueue").Click
wait 5
(3)Browser("XXX Test - ABRAHAM,").Page("XX Test - ABRAHAM,").WebButton("WebButton").Click

在回放时,有时会在第3段脚本就运行不下去了,出现以下提示
Cannot identify the object "WebButton" (of class WebButton). Verify that this object's properties match an object currently displayed in your application.

想请教以下问题:
1.我在录制点击workqueue菜单时,会何会有1,2段脚本,而不人仅仅是第2段脚本?第2段脚本是做何用的?
2.这个错误为何只是偶尔出现?是不是因为2,3段之间的wait所致?
谢谢




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2