51Testing软件测试论坛
标题:
QTP弹出对话框勾选结点,回放脚本,父对象不存在(已更新附上脚本).
[打印本页]
作者:
fumanxiu
时间:
2009-9-28 19:02
标题:
QTP弹出对话框勾选结点,回放脚本,父对象不存在(已更新附上脚本).
各位大侠~请看到帮忙解决下,查找资料半天未找到结果!
问题请参见附件;
原代码如下:
Browser("*有限公司").Page("*有限公司").WebEdit("UserName").Set "abc"
Browser("*有限公司").Page("*有限公司").Image("Submit").Cl
ick 61,15
Browser("*有限公司").Page("*有限公司").Frame("ifrIndexTop").WebElement("公文").Click
Browser("*有限公司").Page("*有限公司_2").Frame("leftMenu").WebElement("培训通知").Click
Browser("*有限公司").Page("*有限公司_2").Frame("frameContent").WebButton("起草培训通知").Click
Browser("工作流服务平台").Page("工作流服务平台").Sync
Browser("*有限公司").Page("*有限公司").Sync
Dialog("Internet Explorer").WinButton("是(Y)").Click
Browser("工作流服务平台").Page("工作流服务平台").Frame("bottomFrame_2").WebEdit("FileTitle").Set "ddd"
Browser("工作流服务平台").Page("工作流服务平台").Frame("bottomFrame_2").WebEdit("KeyWord").Set "dddd"
Browser("工作流服务平台").Page("工作流服务平台").Frame("bottomFrame_2").WebElement("*主 送").Click
Browser("工作流服务平台").Window("部门选择 -- 网页对话框").Page("部门选择").Frame("ifrmAdTree").WebCheckBox("WebCheckBox").Set "ON"
Browser("工作流服务平台").Window("部门选择 -- 网页对话框").Page("部门选择").Frame("ifrmAdTree").WebCheckBox("WebCheckBox_2").Set "ON"
Browser("工作流服务平台").Window("部门选择 -- 网页对话框").Page("部门选择").WebButton(">>>").Click
Browser("工作流服务平台").Window("部门选择 -- 网页对话框").Page("部门选择").WebButton("确定").Click
说明:
1.主要操作:点击"主送"按钮,弹出"部门选择 -- 网页对话框",勾选部门结点.提交
2.回放脚本时,绿色部分脚本已执行通过,红色部分抛出异常,提示
WebCheckBox的父对象Page("部门选择")找不到.
异常请参考附件
3.对象库中,父对象
Page("部门选择"),属性均为空,未写入值
请问如何解决????
[
本帖最后由 fumanxiu 于 2009-9-29 11:03 编辑
]
作者:
Oilio
时间:
2009-9-28 20:25
关注下。。。
怎么没有脚本的截图呢?
作者:
yujie6832
时间:
2009-9-28 21:27
脚本代码请帖上来,我现在只是个人猜测而已,而且你也没说这个是CS架构的还是BS的,我估计是BS的,你父对象找不到的原因很可能是因为。。。我已经猜了点,但请你把代码贴上来,特别像这种QTP报错都报的那么精确了,那肯定就是父类对象没有,你更应该把代码帖上来,不然别人不知道你的测试环境等,也就无法帮你
[
本帖最后由 yujie6832 于 2009-9-28 21:33 编辑
]
作者:
fumanxiu
时间:
2009-9-28 23:47
标题:
非常感谢大家的关注,代码在公司,明天附上
具体情况是这样,当点击“主送”按钮,弹出如上图的对话框,脚本中自动生成2行脚本命令。
QQ:82596827
希望多多指教,今天弄了一天没有进展 ,愁~
QQ:82596827
[
本帖最后由 fumanxiu 于 2009-9-28 23:51 编辑
]
作者:
fumanxiu
时间:
2009-9-29 10:51
标题:
回复 3# 的帖子
帖子代码已附上,已更新,期待你的回复.
程序是B/S架构的
[
本帖最后由 fumanxiu 于 2009-9-29 11:03 编辑
]
作者:
wugecat
时间:
2009-9-29 11:05
因为你是弹出的页面,很有可能是Frame的"html id"是动态的下一次弹出就变化了导致你不能识别frame,解决办法是你Spy几次找一下Frame id的变化规律,如iframeid_XXXXXXX,XXX是随机生成的,这个时候你就可以将这个属性用正则表达式替代成“iframeid_.*”就可以识别了,按照这个思路试试行不行??当然也有可能是其它对象的其它属性,总之都一样了
[
本帖最后由 wugecat 于 2009-9-29 11:08 编辑
]
作者:
fumanxiu
时间:
2009-9-29 19:01
标题:
UP
up
作者:
Oilio
时间:
2009-9-30 01:08
1. "Option"->"Web"->"Page\Frame Options..."->"Different test object description"选中。
2.重新录制脚本。
3.恭喜回放成功。
作者:
Oilio
时间:
2009-9-30 01:11
????
作者:
mzhy
时间:
2009-9-30 09:28
你把浏览器的弹出窗口阻止程序关闭,试一下
作者:
yujie6832
时间:
2009-9-30 13:26
和我预期想的有点不一样,我建议先试8楼的方法,再试6楼的办法,但是我个人如果给方法也会给出和6楼差不多的方法
PS,我发现,原来楼主的脚本是录制的。。。可不可以考虑手写呢,可能也会解决问题
问题基本是出在FRAME上,属性有变动,找出变动的属性删了应该就好了~~~~
这种问题还是需要亲自去调试才能慢慢定位问题的
[
本帖最后由 yujie6832 于 2009-9-30 13:38 编辑
]
作者:
fumanxiu
时间:
2009-9-30 17:57
标题:
回复 10# 的帖子
下面分别说明2个问题:
1.按照6楼的思路,我反复使用Spy几次找一下Frame id,未发生变化,是写死的
且父对象Page("部门选择")的name为空导致
2.本人是新手,不会手动写类似的脚本.
如果有解决反案,请不吝赐教
非常感谢~
作者:
风雪夜归人
时间:
2009-9-30 18:34
lz可以尝试把page给去掉,或者一个一个的 highlight,看看哪个对象没有找到
用法 Browser("xxx").highlight
Browser("xxx").Page("xx").xxx.xxx.xxx.highLight
作者:
风雪夜归人
时间:
2009-9-30 18:38
Browser("工作流服务平台").Window("部门选择 -- 网页对话框").Page("部门选择").Frame("ifrmAdTree").WebCheckBox("WebCheckBox").Set "ON"
如果要改的话,改为下述
Browser("工作流服务平台").Window("部门选择 -- 网页对话框").Page(":=").Frame("text:=ifrmAdTree").WebCheckBox("index:=xxx").Set "ON"
试试
作者:
yujie6832
时间:
2009-10-3 13:46
这个问题看来是由于PAGE为空,导致,楼主请这样做,看能否给这个空值的PAGE添加点关键属性让QTP能识别呢?如果不可以,可以考虑用描述性编程,就像14楼那样,我觉得可能的话可以这么试试
Browser("工作流服务平台").Window("部门选择 -- 网页对话框").Page("micClass:=部门选择 -- 网页对话框").Frame("text:=ifrmAdTree").WebCheckBox("index:=xxx").Set "ON"
还有,我强烈建议,请手工添加对象,别录制脚本,你手工式下添加这个PAGE,看看有没有属性
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2