51Testing软件测试论坛

标题: 如果某一个条件查询不到任何数据,后续的webtable的行数统计不正确 [打印本页]

作者: T_LONE    时间: 2014-10-23 13:45
标题: 如果某一个条件查询不到任何数据,后续的webtable的行数统计不正确
本帖最后由 T_LONE 于 2014-10-24 17:15 编辑

说明:
1.在数据列表中做查询操作,i=1的时候当前列表查询不到任何数据,i=2的时候当前列表能查询到多条数据
2.当查询不到任何数据时Data_RowCount=1,我估计是有一行数据列名的原因
问题:
1.如果当前列表查询不到任何数据之后,后续的条件无论是否能查询到数据,Data_RowCount永远显示为1
2.如果反过来我先查询i=2的情况再查询i=1的情况,i=2能够获取正确的数据列表的行数
3.数据列表查询的数据在浏览器中都能正确显示,唯独行数统计不对
这个问题非常怪异,单独查询一次都是没有任何问题,只有在列表查询不到任何数据之后,后续的行数统计就不正确了
补充:
如下图所示,数据列表代表一个webtable(以下称表1),查询条件中还有一个webtable(以下称表2).
[attach]92669[/attach]
如果有数据查询时会自动识别为表1,但是如果查询无数据之后,后续无论怎么查询都是识别为表2。
我用描述性语言编程,如下:
name1=Browser("浙江盛炬增值业务服务平台 (Esicash").Page("浙江盛炬增值业务服务平台 (Esicash").Frame("机构列表").WebTable("html tag:=TABLE","name:=edit").RowCount
如果查询有数据时,按照上面的描述 成功识别
如果查询无数据时,按照上面的描述无法识别,因为指到表2去了,而且我用exist判断是否存在也不行。
请问有什么办法让我查询时一直就固定在表1中进行判断
表1对应的webtable的属性
[attach]92670[/attach]
表2的webtable对应的属性
[attach]92671[/attach]
附代码:
For i=1 to 2
Browser("增值业务服务平台").Page("增值业务服务平台 ").Frame("leftFrame").Link("系统管理").Click
Browser("增值业务服务平台").Page("增值业务服务平台").Frame("leftFrame").Link("机构管理").Click
If i=1 Then
Browser("增值业务服务平台").Page("增值业务服务平台").Frame("机构列表").WebEdit("organ.organId").Set "111qqw111"
else
If i=2 Then
Browser("增值业务服务平台").Page("增值业务服务平台").Frame("机构列表").WebEdit("organ.organId").Set "0000"
End If
End If
Browser("增值业务服务平台").Page("增值业务服务平台").Frame("机构列表").WebButton("查   询").Click
Data_RowCount=Browser("增值业务服务平台").Page("增值业务服务平台").Frame("机构列表").WebTable("机构数据列表").RowCount
msgbox Data_RowCount
Next




作者: sincor    时间: 2014-10-23 14:09
本帖最后由 sincor 于 2014-10-23 14:12 编辑

用.WebElement("html tag:=XXX","html id:=XXX").GetROProperty("innertext")

用运行时的数值
简单的说,,,你取的是点查询之前的结果,当然是0条


如果是webtable  请自行修改上面的语句

作者: T_LONE    时间: 2014-10-24 14:57
sincor 发表于 2014-10-23 14:09
用.WebElement("html tag:=XXX","html id:=XXX").GetROProperty("innertext")

用运行时的数值

不是非常明白你的意思,我这个是查询之后直接取获取webtable的rowcount
作者: T_LONE    时间: 2014-10-25 16:01
没有人帮看看么 自己顶
作者: sincor    时间: 2014-10-29 10:46
Browser("增值业务服务平台").Page("增值业务服务平台").Frame("机构列表").WebTable("机构数据列表").RowCount

这段代码一定是取的原来你录制的时候它本身rowcount的值,

一定要取值是运行时的值,好好理解下 .GetROProperty的含义
我试着帮你改改
Browser("增值业务服务平台").Page("增值业务服务平台").Frame("机构列表").WebTable("机构数据列表").GetROProperty("RowCount")

表面上你是点了一下才去的这个rowcount,实际上你去打开对象库中的webtable,看看这个rowcount是几????



作者: sincor    时间: 2014-10-29 10:56
再者简单的说,你调出来的rowcount是你录制那一刻的行数!!

必须通过GetROProperty,取得运行时刻的那一时刻行数  调用rows貌似是这个
作者: sincor    时间: 2014-10-29 11:26
Window("计算器").WinButton("5").Click
Window("计算器").WinButton("*").Click
Window("计算器").WinButton("9").Click       
Window("计算器").WinButton("=").Click


print Window("计算器").Static("window id:=150").GetROProperty("text")

再来一个例子

比如说,最开始你加入对象库的计算器文本框 内一定是0
取运行时的文本框值就是 5*9 =45




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