wing1017 发表于 2008-12-15 19:35:35

frame识别大家帮帮忙

系统里面有好多frame层,而且每次运行名字都会变化,我用下面方法取出名字,可是怎么给他放回去呢?
Dim ObjectName
ObjectName = Browser("登录系统").Page("系统").Frame("TB_iframeContent740").GetROProperty("name")
上面的名字取出来了,我用下面的方法放回去,不能运行,请大家帮帮忙,应该怎么写?
Browser("登录系统").Page("系统").Frame("TB_iframeContent740").SetTOProperty("name", ObjectName).WebCheckBox("WebCheckBox").Set "ON"

blueeagle9999 发表于 2008-12-15 21:30:09

你应该试着寻找别的可以唯一识别这些iframeContent的属性

远野志贵 发表于 2008-12-16 00:13:36

换一个识别方法,在Object identification 里面选择能唯一识别这个窗口的属性便搞定.
默认的是只识别FRAME这个NAME的属性,你可以改为识别HTML ID这个属性就OK了.:)

lingxin5013 发表于 2008-12-16 09:11:16

你这样是没有用的 name只是一个标志不能代表这个对象的属性
其次你使用set 只是临时给你的对象VALUE放个值没用,当然出错不通过

解决办法:
      Method:1:既然你说你后面数字变化可以在对象中为这几个数字写个Regular Express (这个要保证你后面的数字是否都是3位的数字。
      Method:2 :使用description 找出你这个父对象下面的子对象这里应该是WebCheckBox了,使用Childobjects(Des) 来完成操作,这里需要注意的是对于选取checkbox范围需要自己把握了,这个把所有的集合都放在一起了。
      Method:2 :实在不行就通过坐标差来做吧。这个方法比较笨但是是无敌方法了呵呵。       希望对你有帮助。

wing1017 发表于 2008-12-16 20:01:15

谢谢各位的帮忙
lingxin5013的意思是不是这样写?
Set oDesc = Description.Create()
oDesc("html id").Value = "mar_checkbox2"
oDesc("name").Value = "WebCheckBox"
Browser("登录系统").Page("系统").Frame("name:=Name").ChildObjects(oDesc).Set "ON"
还是报错。
我是新手,不知道这样写对不对,大家指教

sstars 发表于 2008-12-16 21:35:45

Set oDesc = Description.Create()
oDesc("micclass").Value = "WebCheckBox"
oDesc("html id").Value = "mar_checkbox2"
Set objs = Browser("登录系统").Page("系统").Frame("name:=Name").ChildObjects(oDesc)
objs(0).Set "ON"
多看看qtp的帮助吧,会有其他的收获
页: [1]
查看完整版本: frame识别大家帮帮忙