教材示例实践之三

第五个示例要求如下:

WebList & WebRadioGroup

 

前提条件:用户已经登录51testing网站并进入“个人中心”,然后点击“论坛个性化设定”链接,进入下面的页面。

         

 

详细要求:

1. 【界面风格】:选择<discuz6>,再重新选回<使用默认>

2. 【每页主题数】:选择“每页30个主题”

  【每页贴数】:选择“每页15贴”

  【签名显示设置】:选择“显示签名”

  【头像显示设置】:选择“不显示头像”

3. 【时差设定】:选择<(GMT +08:00) Beijing, Hong Kong, Perth, Singapore, Taipe>,然后随机选择一个,再做验证

 

最后的成品代码如下:

with Browser("51Testing软件测试论坛").Page("51Testing软件测试论坛")



   'WebList的使用:所见即所得

    DataTable.Value("界面风格",Global)  =  "discuz6"      '使用了DataTable

    tValue1 = DataTable.Value("界面风格",Global)  

    .WebList("界面风格").Select tValue1    'QTP封装好的方法



    'for check our result1

    check1 =Trim( .WebList("界面风格").GetROProperty("selection"))



    DataTable.Value("界面风格",Global)  =  "使用默认"

    tValue2 = DataTable.Value("界面风格",Global)  

    .WebList("界面风格").Select tValue2



    'for check our result2

    check2 =Trim( .WebList("界面风格").GetROProperty("selection"))



    If  check1 = "discuz6" and check2 = "使用默认" Then

        reporter.ReportEvent micPass,"Step1:weblist","Passed"

    else

        reporter.ReportEvent micFail,"Step1","Failed"

    End If



    'WebRadioGroup的使用

     .WebRadioGroup("每页主题数").Select "30"                       '注解1

     .WebRadioGroup("每页贴数").Select "15"

     .WebRadioGroup("签名显示设置").Select "1"

     .WebRadioGroup("头像显示设置").Select "0"



    reporter.ReportEvent micDone, "step 2 : webradiogroup","done"



    '从很多个选项中选择一个

    dim expectRes

    expectRes = "(GMT +08:00) Beijing, Hong Kong, Perth, Singapore, Taipei"

     .WebList("时差设定").Object.selectedIndex = "27"                  '注解2  

     actualRes =  .WebList("时差设定").GetROProperty("selection")



    If actualRes = expectRes Then

        reporter.ReportEvent micPass,"Step3","Passed"

    else

        reporter.ReportEvent micFail,"Step3","Failed"

    End If



    '随机选择

    itemCount =  .WebList("时差设定").GetROProperty("items count")                   '注解3

    tValue3 = RandomNumber(0,itemCount - 1)                 'QTP保留的随机方法

    .WebList("时差设定").Object.selectedIndex = tValue3

    '验证

    selectedRes =  .WebList("时差设定").GetROProperty("selection")

    msgbox selectedRes



end with

 

解释几点:

 1. 注解1   这里看着奇怪,为什么有时候是选项名,有时候是序号呢?一般情况下WebList对象的选项是所见即说得的,就是说写脚本的时候,WebList的参数直接填下拉框里的内容就可以了。但是WebRadioGroup就不是了。它的参数究竟要填内容还是序号呢?这个我们就要依靠Spy这个工具了。

【每页主题数】       【签名显示设置】

仔细观察all items一项,我们就可以判断出,它的值就是对应所有选项了。所以我们选择每页主题数为30时,填的参数是“30”,而签名显示设置的参数是0。

2. 注解2  使用自身接口+Index的组合一样可以对WebList对象操作,这样不必把Item的值写死

3. 注解3  使用运行时方法可以获取WebList总共有多少个选项,怎么知道是哪个属性?再用Spy来看看吧:

                           

可见”items count“属性记录了WebList下有几个选项

 

第六个示例要求如下:

WebTable

前提条件:登陆51testing网站,点击“我的个人空间”链接,进去后点“空间管理”,点“日志”的私人箱,进入如下界面:

详细要求:

1. 计算当前WebTable对象的行与列

2. 搜索以下3个文章:

  (1)测试3

  (2)测试2

  (3)测试1

  找到文章后,勾选它们左侧的勾选框,将“测试3”这篇文章的发布时间写入测试报告

 

最后的成品代码如下:

 

With Browser("个人空间管理").Page("个人空间管理")

    tRow = .WebTable("标题").RowCount  



    For cRow = 0 to tRow-1

        cellData = .WebTable("标题").GetCellData(cRow+1,2)     '注解1

        'msgbox cellData

        For  i = 1 to 3

            Select Case i

            Case 1

                search1 = "测试1"

                return = instr(cellData,search1)               '注解2

                If return <> 0 Then

                    Set oWebCheckBox = .WebTable("标题").ChildItem(cRow+1,1,"WebCheckBox",0)      '注解3

                    oWebCheckBox.set "on"

                    Set oWebCheckBox = nothing

                    Exit for

                End If



            Case 2

                search1 = "测试2"

                return = instr(cellData,search1)

                If return <> 0 Then

                    Set oWebCheckBox = .WebTable("标题").ChildItem(cRow+1,1,"WebCheckBox",0)

                    oWebCheckBox.set "on"

                    Set oWebCheckBox = nothing

                    Exit for

                End If



            Case 3

                search1 = "测试3"

                return = instr(cellData,search1)

                If return <> 0 Then

                    Set oWebCheckBox = .WebTable("标题").ChildItem(cRow+1,1,"WebCheckBox",0)

                    oWebCheckBox.set "on"

                    Set oWebCheckBox = nothing

                    tDate = .WebTable("标题").GetCellData(cRow+1,3)

                    reporter.ReportEvent micPass,"date","""测试3"" 这篇文章发表于:<"&tDate&">"   '注意把变量值嵌入文本的语法

                    Exit for

                End If

            End Select



        Next

    Next



End With

 

 

解释几点:

1. 注解1  cellData方法是WebTable对象的一个重点方法,作用是获取指定单元格(行,列)的值。

  语法是:Object<WebTable>.GetCellData(Row,Column)

    Row是必填项,表格的行号;Column也是必填项,表格的列号。

  至于这里的列号是多少怎么判断,你用这个方法获取它,然后msgbox一下就知道了。

2. 注解2  Instr作用:将search字符串与cellData中的某个下标位置(默认是1)开始一一匹配,匹配到1个就返回1,匹配到2个就返回2...

3. 注解3  ChildItem方法是WebTable对象的另一个重点方法。它可以获取WebTable里的某个子对象。

  语法是:Object<WebTable>.ChildItem(Row,Column,MicClass,Index)

  其中MicClass是必填项,对象控件的类名,如List,WebButton,WebEdit等等,要虚拟成什么对象就填什么。Index填0就可以了。

 

你可能感兴趣的:(示例)