GUI map中有GUI,但脚本识别不到这个GUI?太奇怪了!
GUI map中已经存在了dw_3.priceLogical Name :
dw_3.price
{
class: edit,
obj_col_name: "dw_3.price"
}
脚本如下:
set_window ("入库事务 - [新增]", 10);
obj_type ("dw_3.lot","<kRight_E><kReturn>");
obj_type ("dw_3.qty","5<kReturn>");
obj_type ("dw_3.price","20<kReturn>"); #无法识别到脚本中的dw_3.price、dw_3.qty等等
obj_type ("dw_3.amt","<kReturn>");
。。。。。。
类似问题经常碰到,弹出Run Wizard后手工识别,但是临时性的,第二次运行又识别不了。我的错误在哪儿呢?
根据Run Wizard加入wait:
set_window ("入库事务 - [新增]", 10);
wait(10);
obj_type ("dw_3.lot","<kRight_E><kReturn>");
obj_type ("dw_3.qty","5<kReturn>");
obj_type ("dw_3.price","20<kReturn>"); #无法识别到脚本中的dw_3.price
obj_type ("dw_3.amt","<kReturn>");
[ 本帖最后由 queen 于 2006-9-13 12:20 编辑 ] 我发现另外一个奇怪的问题, 不知道是否与问题相关:
GUI map editor的learn功能,图1的情况可以learn得到,但图2的情况却learn不到。
而用GUI SPY的SPY功能,设置为object,是可以learn得到 数量、价格等的编辑框。
我也把GUI SPY的SPY学到的属性,手工添加到GUI map editor中,但运行脚本还是识别不到。
[ 本帖最后由 queen 于 2006-9-13 12:31 编辑 ] 你贴一下这几个GUI的描述,在MAP里的,我认为是他们的GUI发生变化了 GUI中的描述如下,他们的属性一般是固定的:
Logical Name :
dw_3.price
{
class: edit,
obj_col_name: "dw_3.price"
}
Logical Name :
dw_3.qty
{
class: edit,
obj_col_name: "dw_3.qty"
}
Logical Name :
amt
{
class: edit,
obj_col_name: "dw_3.amt"
}
我猜想GUI SPY 认到的GUI比较精确吧,可以手工指定到这个GUI的位置上,而对于已经在GUI map editor中的GUI,运行脚本时,因有的文本框是不被激活,
例如: 数量和价格框是可以激活来输入的,而金额却是静态的,是根据数量和价格的值自动算出结果填进去。这样运行脚本本,就导致了learn不到金额这种文本框。 有几种可能,你定义的dw_3.price这个属性发生变化,还有就是你没有设定当前的windows(set_window),还有一种可能你没有设置等待点,因为你运行的脚本太快,也许你运行到这一步时候,你的控件还没有出现。
所以你的这种情况你需要单步调试来找到原因,然后再改进脚本! 该问题已经解决了,现在可以识别到GUI了。
我想应该是你说的set_window的情况吧,但还不是很确定。 对系统有了正确的设置后, 在正确的模式下工作, 还没有碰到无法回放的现象. 我却经常碰到第一次Verify Run都可以通过了。并且是多次Run都通过了。
一旦关闭WR,重新打开这个脚本,就到处报错,识别不到GUI了,有的是在GUI map中已经存在的,有的是
没有在GUI map中,又要重新learn一次了!
对于没有在GUI map中的情况,可能是由于我操作失误引起:因用Rapidtest Script Wizard 时,并不会将系统中所有的GUI
都learn到 GUI map中。但是可以录制这些动作,第一次Run是可以的。关闭了WR后,再打开,就找不到录制时候的那些
GUI了。
[ 本帖最后由 queen 于 2006-9-14 11:41 编辑 ] 收藏一下!
页:
[1]