louqqson008 发表于 2012-8-13 18:14:35

学习QTP在下拉框这知识点卡住了。

目前用的是下面这段代码,来实现按顺序一个一个选择下去,但是通过是通过,但只执行一次,如何实现按顺序进行,
Dim listcount '下拉框数
Dim i '初始值
      listcount=Browser("Mercury Tours").Page("Find a Flight").WebList("passCount").GetROProperty ("listcount") '获得下拉框选项个数'选择每个调用的下拉框值
For i =0 to listcount-1
      Browser("Mercury Tours").Page("Find a Flight").WebList("passCount").select "" & i
Next



还有个问题如何就单独选择下拉框中的指定选项(不通过录制)

shingo0109 发表于 2012-8-14 09:46:58

1. LZ这样写试试:
listcount=Browser("Mercury Tours").Page("Find a Flight").WebList("passCount").GetROProperty ("items count")
For i =0 to listcount-1
      Browser("Mercury Tours").Page("Find a Flight").WebList("passCount").select "#" & i
Next
2. 单独选择下拉框中的指定选项,就直接Select哪个项就行了啊, 不录制么可以用描述性编程来写
Browser("Mercury Tours").Page("Find a Flight").WebList("passCount").select "aaa"

louqqson008 发表于 2012-8-14 16:25:09

回复 2# shingo0109


非常感谢,刚在运行成功了。

现在又有一个问题了,我现在的想法是这样的,
刚开始为了实现在datatable的global中取值,然后用:
formdata=datatable.Value("出发地","Global") '读取Globle中的值
Browser("Mercury Tours").Page("Find a Flight").WebList("fromPort").Select"formdata"修改出发地,根据Globle中的数据
但是实现不了
后来发现这是weblist而不是webedit,就用了下面的这些代码尝试实现,结果还是错误,
虽然能正常RUN并pass,但是能执行global中的次数(行数),却无法读取数据只能进行IF语句中else部分

Dim formdata
Dim portdata
    portdata=browser("Mercury Tours").Page("Find a Flight").WebList("fromPort").GetROProperty("items count") '读取下拉框中的所有出发地数
    formdata=datatable.Value("出发地","Global") '读取Globle中的值
'当从Globle中读取的值与下拉框中的值有相同时,将此值做为下拉框的值
Ifformdata<=portdata Then
        Browser("Mercury Tours").Page("Find a Flight").WebList("fromPort").Select"#" & formdata'修改出发地,根据Globle中的数据
        else
    Browser("Mercury Tours").Page("Find a Flight").WebList("fromPort").Select"London"
End If

    现在感觉头一片晕啊-.-,

shingo0109 发表于 2012-8-14 16:40:14

回复 3# louqqson008


    看你写的代码, formdata的值应该是下拉选项里的值吧, 如London, Shanghai等
但portdata这个获取的是下拉框的所有item的总数, 这2个值没法比较的啊
Ifformdata<=portdata Then这句不合逻辑的吧, 如果你是想获取所有的item项, 可以这么写:
portdata=browser("Mercury Tours").Page("Find a Flight").WebList("fromPort").GetROProperty("all items")
formdata=datatable.Value("出发地","Global")
If Instr(1, portdata, formdata) > 0 Then   '表示formdata在下拉选项里
Browser("Mercury Tours").Page("Find a Flight").WebList("fromPort").Select formdata
else
    Browser("Mercury Tours").Page("Find a Flight").WebList("fromPort").Select"London"
End If

louqqson008 发表于 2012-8-14 16:48:58

回复 4# shingo0109


    看了你写的代码,受益匪浅啊,非常感谢。
页: [1]
查看完整版本: 学习QTP在下拉框这知识点卡住了。