51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3129|回复: 11
打印 上一主题 下一主题

[原创] 怎样得到省市区的值

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-12-24 10:26:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
录制脚本时有省、市、区三级联动的下拉框,回放脚本时不能成功取到下拉框中的值,有什么方法可以取到呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-12-24 15:38:30 | 只看该作者
  一般来说是因为服务器无法立即获得响应时间.
你可以在这句脚本前后加上等待函数. wait(n);   等待几秒钟
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-12-25 08:32:29 | 只看该作者
录制的时候就没有把下拉框的值录制进去。是不是要用虚拟对像来获取对象呀?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-12-25 11:14:24 | 只看该作者
webedit(###).object.value="省市"
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-12-25 13:04:10 | 只看该作者
将下拉列表取出放到数组中,然后从数组总随机选择一个

ReDim area(area_rows)  '定义一个动态数组,最大值为区域的个数
area_rows=Browser(Browser_name).Page(Page_name).Frame(Frame_name).WebList("name:=organ_code").GetROProperty("Items Count")
For i=1  to area_rows ''此处的j只能从1开始,否则报错,因为weblist是从1开始计算的
area(i)=Browser(Browser_name).Page(Page_name).Frame(Frame_name).WebList("name:=organ_code").GetItem(i)
   '将下拉中的每个元素读取存放到数组中
'msgbox(area(i))
Next

Browser(Browser_name).Page(Page_name).Frame(Frame_name).WebList("name:=organ_code").Select   area(3)
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-12-26 08:49:08 | 只看该作者
得到省市区的值时
area_rows=Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=Province_id").GetROProperty("name")
得不到Province_id, City_id,  Country_id 的值

请帮忙再指点一下
代码如下:

ReDim area(area_rows)  '定义一个省动态数组,最大值为区域的个数
ReDim area1(area1_rows)  '定义一个市动态数组,最大值为区域的个数
ReDim area2(area2_rows)  '定义一个区动态数组,最大值为区域的个数

area_rows=Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=Province_id").GetROProperty("name")
For i=1  to area_rows ''此处的j只能从1开始,否则报错,因为weblist是从1开始计算的
area(i)=Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=Province_id").GetItem(i)
   '将下拉中的每个元素读取存放到数组中
'msgbox(area(i))
Next
Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=Province_id").Select   area(1)

area1_rows=Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList(" name:=City_id").GetROProperty("name")
For i=1  to area1_rows ''此处的j只能从1开始,否则报错,因为weblist是从1开始计算的
area1(i)=Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=City_id").GetItem(i)
   '将下拉中的每个元素读取存放到数组中
'msgbox(area1(i))
Next
Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=City_id").Select   area1(1)

area2_rows=Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=Country_id").GetROProperty("name")
For i=1  to area2_rows ''此处的j只能从1开始,否则报错,因为weblist是从1开始计算的
area2(i)=Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=Country_id").GetItem(i)
   '将下拉中的每个元素读取存放到数组中
'msgbox(area2(i))
Next
Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("name:=Country_id").Select   area2(1)
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-12-26 15:47:24 | 只看该作者
你的意思是说weblits的值取得不到?
是页面有多个weblist吧,而且weblist的无法区分么?
如果是这样的话,你可以用webtable的ChildItem方法
Browser(Browser_name).Page(Page_name).Frame(Frame_name).WebTable("html id:=table").ChildItem(1,1,"WebList",0).select  area(1)

如果你连webtable都无法取得,我建议你用index属性
Browser("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台").Page("中国家纺交易网 爱生活,爱家纺 中国最大的家纺交易平台_4").WebList("index:=0").Select   area1(1)
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-12-26 16:19:31 | 只看该作者
嗯,weblits的值取得不到。页面上有三个weblist,我也不知道能不能区分。
按你的方法是不是先要添加虚拟对象呀?
WebList("index:=0").Select   area1(1)中index:=0是什么意思呀?

虚拟对象添加后怎么样才能用到其它录制程序里呢?
比如说我录制一个登录程序,我添加了图片按钮“确定”。然后新建一个页面再录制一次时就不能得到那个图片按钮的虚拟值了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-12-27 10:10:22 | 只看该作者
index属性你都不知道 你太笨了
还有虚拟对象的概念你都没弄清楚,我的QTP从不用对象库的

index是qtp在省城页面时生成的顺序   是个辅助属性
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-12-28 08:09:49 | 只看该作者
呵呵!我刚开始自学,有太多东西不懂呢!用编程的方法实现功能更不会了。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-12-28 10:42:02 | 只看该作者
如果只要求取一个值的话,可以不用任何参数的,你仔细观察脚本的话会发现录制的脚本在选中值后还有一个确认的语句,例如:
Browser("。。。").Page("。。。").WebList("。。。").Click
Browser("。。。").Page("。。。").WebList("。。。").Select "value"
Browser("。。。").Page("。。。").WebList("。。。").Click
直接把select 语句后面的那句注释掉就可以了。
Browser("。。。").Page("。。。").WebList("。。。").Click
Browser("。。。").Page("。。。").WebList("。。。").Select "value"
‘Browser("。。。").Page("。。。").WebList("。。。").Click
在不同的下拉菜单中间最好加个wait时间
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2011-10-19 18:31:35 | 只看该作者
我也遇到这个问题,加wait不管用。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-11 21:36 , Processed in 0.081081 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表