51Testing软件测试论坛

标题: 为什么会得不到childitemn呢,childobjects.count也是0 [打印本页]

作者: bluelight    时间: 2006-5-8 15:57
标题: 为什么会得不到childitemn呢,childobjects.count也是0
dim t
set t = Browser("ContentFrameworkMainApp").Page("ContentFrameworkMainApp").WebTable("Name").ChildItem(2,2,"WebTable")
报错说:Wrong number of arguments or invalid property assignment

//repository 里面的webtable ---"Name" 确实没有子元素,但是table本身是在2,2cell里面嵌套了一个table的

//bow
作者: bluelight    时间: 2006-5-8 16:12
自己本来思想很明确,可是coding的时候就很多想法都没有办法实现,再次请教达人~!
我要做的事情是:
从一个动态list中,找到一个特定项,并且选中它
该 list是分层的,如下图所示:

我想遍历一遍表单,应该是可以实现的,可是一开始coding就碰到上面的问题,每次碰到要得到child item的时候就出问题
不知哪位达人,有相关的代码,愿意share下,bow~~~~~~~~~~~~~~~~

//小intern的生活,因为qtp变得充实,然后也因为qtp变得郁闷。。。。。sigh!
作者: 海龙    时间: 2006-5-9 09:24
set t = Browser("ContentFrameworkMainApp").Page("ContentFrameworkMainApp").WebTable("Name").ChildItem(2,2,"WebTable")
报错说:Wrong number of arguments or invalid property assignment

你将光标定位到WebTable上面,然后按F1,调出帮助,然后查看ChildItem方法的用法。

你的错误是参数错误。
作者: bluelight    时间: 2006-5-9 10:04
  1. 'tmp get the return object in cell 2,2 ,and  it is WebTable
复制代码
  1. Dim tmp
复制代码
  1. set tmp =   Browser("ContentFrameworkMainApp").Page("ContentFrameworkMainApp").WebTable("Name").ChildItem(2,2,"webtable",0)
复制代码

  1. 'then i check if  tmp got it ,and every time i get the info "tmp is object"
复制代码
  1. If isObject(tmp) Then
复制代码
  1.         msgbox "tmp is object"
复制代码
  1. End If
复制代码

  1. 'but when i use the "tmp"  object as a webTable  according to its API function ,there is still  some thing wrong
复制代码
  1. Dim tmp_2
复制代码
  1. tmp_2 = tmp.RowCount
复制代码



错误提示:Object required
Line (35): "tmp_2 = tmp.RowCount".
怎么样修改呢?
作者: bluelight    时间: 2006-5-9 10:05
晕。。。。。。
这code样式被我弄得,汗!
作者: winder238    时间: 2006-5-9 10:26
不要尝试使用object
你可以绕开试试
QTP做的太傻瓜
作者: bluelight    时间: 2006-5-9 10:38
en ??
虾米意思?
不懂sdlkfj9

我是要得到table中某个tr中嵌套的table,绕开object?该怎么样呢
作者: winder238    时间: 2006-5-9 11:15
我不知道你的具体需求
我使用的是TestPartner
对这种问题我都是绕的
作者: winder238    时间: 2006-5-9 11:19
或者说你的设计的case是怎么样的
作者: bluelight    时间: 2006-5-9 11:48
我是要在上面贴出来得图所示的 table中:
1.找出我的参数指定name的那个item(可以是任何一级的item项,即父or子的name都可以)
也就是check是否存在某个特定name 的item

2.这个大的table的每一项都是可以展开的.table一页显示的item数量
是一定20项。
如果原来一页显示的是第1,2,3,。。。。。。20个item
展开item1,如果1下面有子item:1_1,1_2,1_3
那么一页显示第1,1_1,1_2,1_3,2,3........17个item


//不知道我表述清楚没有:)
作者: winder238    时间: 2006-5-9 12:14
或者你可以check每个item之前的三角符号,用图像判定(QTP应该也有,我知道TP有的)
是右三角符号就点开,然后item依次加一(没有item加一方法可以尝试用(控件坐标+一个item高度)定位,继续check,应该可以点开所有的右三角,点开的同时可以做判断有没有存在那个name
这个好像有点绕

不太喜欢QTP
做的太傻瓜,发挥不了测试人员的能动性
作者: bluelight    时间: 2006-5-9 13:18
我就一直不明白,为什么1涉及到childobject的东西,就出错,ms没有哪个控件,我用过这个方法是管用的。。。。。。。。没办法解决,sigh!

//我试试看你说的方法吧,不过不知道为什么child没有用,很不爽
那个tr里面的代码大致是这样的:

  1. <table>
  2.   <tr>
  3.       <td><img src=""...........></td>
  4.       <<td><span>text</span></td>
  5.   </tr>
  6. </table>
复制代码


我要找到那个image,不是也要定位到单元隔吗?
怎么样定位呢?
你刚才说的能不能再详细点。。。。。。

//bow
作者: bluelight    时间: 2006-5-9 13:49
再问下,什么叫做继续check呢
你的意思是说定位 cursor位置,继续check吗?
qtp能够做到?
作者: winder238    时间: 2006-5-9 14:43
不涉及html代码
只是在界面的观点上进行
GUI自动化就是模拟鼠标键盘事件,把你怎么做的用脚本写出来
作者: bluelight    时间: 2006-5-9 16:23
如果以位置定位控件
要精确到像素
要是GUI即使是一个像素的调整就需要改动代码啊!//是不是呢?

我觉得即使是UI自动化,也应该从逻辑角度设计script codes
作者: winder238    时间: 2006-5-11 00:09
工具会帮助识别对象,包括他的所有信息,你可以做动态的方法来获取控件的位置
这个在testpartner中很容易实现,qtp应该也可以,不然不会那么流行
UI的自动化是从手工测试得来的,用的人的逻辑




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