51Testing软件测试论坛

标题: 学习QTP在下拉框这知识点卡住了。 [打印本页]

作者: louqqson008    时间: 2012-8-13 18:14
标题: 学习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
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
回复 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中读取的值与下拉框中的值有相同时,将此值做为下拉框的值
If  formdata<=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
回复 3# louqqson008


    看你写的代码, formdata的值应该是下拉选项里的值吧, 如London, Shanghai等
但portdata这个获取的是下拉框的所有item的总数, 这2个值没法比较的啊
If  formdata<=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
回复 4# shingo0109


    看了你写的代码,受益匪浅啊,非常感谢。




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