zjl2009 发表于 2009-12-24 10:26:43

怎样得到省市区的值

录制脚本时有省、市、区三级联动的下拉框,回放脚本时不能成功取到下拉框中的值,有什么方法可以取到呢?

yuxgu 发表于 2009-12-24 15:38:30

:lol一般来说是因为服务器无法立即获得响应时间.
你可以在这句脚本前后加上等待函数. wait(n);   等待几秒钟

zjl2009 发表于 2009-12-25 08:32:29

录制的时候就没有把下拉框的值录制进去。是不是要用虚拟对像来获取对象呀?

zrg9399 发表于 2009-12-25 11:14:24

webedit(###).object.value="省市"

ydl668 发表于 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=1to 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)

zjl2009 发表于 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=1to 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=1to 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=1to 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)

ydl668 发表于 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).selectarea(1)

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

zjl2009 发表于 2009-12-26 16:19:31

嗯,weblits的值取得不到。页面上有三个weblist,我也不知道能不能区分。
按你的方法是不是先要添加虚拟对象呀?
WebList("index:=0").Select   area1(1)中index:=0是什么意思呀?

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

ydl668 发表于 2009-12-27 10:10:22

index属性你都不知道 你太笨了
还有虚拟对象的概念你都没弄清楚,我的QTP从不用对象库的

index是qtp在省城页面时生成的顺序   是个辅助属性

zjl2009 发表于 2009-12-28 08:09:49

呵呵!我刚开始自学,有太多东西不懂呢!用编程的方法实现功能更不会了。

zhouchiyi 发表于 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时间

moyiyun 发表于 2011-10-19 18:31:35

我也遇到这个问题,加wait不管用。
页: [1]
查看完整版本: 怎样得到省市区的值