沅芷湘兰 发表于 2013-7-24 13:39:37

SilkTest系列---中级篇(.NET Script)之读数据文件

自动化读取外部数据然后进入测试用例来运行脚本是个永恒的旋律,所以我们每个自动化测试工具都不会逃离和回避这个问题,我们在基础篇中也提到了这个话题,今天再重拾起来,不过在这里我将不再赘述添加数据源的部分,因为这部分是完全一致的,今天我们主要学习怎么在代码中引用数据源的数据。上一次我们新建了一个数据源文件名为“Untitled_7”,同时里面有两列,一列为“inputValue”,一列为“outputValue”,具体结构如下图所示:

其中“inputValue”为我们在百度搜索中输入的查询内容,“outputValue”则为我们在写入文件部分里通过输入框取得的值并写入该文件。
下面我们先通过取得的值“inputValue”并输入搜索框来完成并且的百度搜索测试,代码如下所示:
                                '读取ActiveData里名称为“Untitled_7”里的数据
                                Dim readData As ActiveData = Workbench.LoadActiveData("Untitled_7")
                                Dim readRow As ActiveDataRow
                                Dim inputValue As String
                               
                                '读取每一行的数据
                                For Each readRow In readData
                                        '读取每一行的inputValue的值如:readRow.GetString("inputValue")
                                        inputValue = readRow.GetString("inputValue")
                                        .DomTextField("kw").Click(MouseButton.Left, New Point(146, 17))
                                        'inputValue取得后再赋值
                                        .DomTextField("kw").SetText(inputValue)
                                        '.DomTextField("kw").TypeKeys("51testing")
                                        .DomButton("su").Click(MouseButton.Left, New Point(72, 14))
                                Next
加入此段代码后,成功运行!大家可以手工尝试一下。
附上完整的测试,如下所示:
Imports SilkTest.Ntf.XBrowser
Public Module Main
        Dim _desktop As Desktop = Agent.Desktop
        Dim kwtext As String

        Public Sub Main()
                With _desktop.BrowserApplication("WebBrowser3")
                        .SetActive()
                        With .BrowserWindow("BrowserWindow")
                                .Navigate("http://www.baidu.com/")
                               
                                '读取ActiveData里名称为“Untitled_7”里的数据
                                Dim readData As ActiveData = Workbench.LoadActiveData("Untitled_7")
                                Dim readRow As ActiveDataRow
                                Dim inputValue As String
                               
                                '读取每一行的数据
                                For Each readRow In readData
                                        '读取每一行的inputValue的值如:readRow.GetString("inputValue")
                                        inputValue = readRow.GetString("inputValue")
                                        .DomTextField("kw").Click(MouseButton.Left, New Point(146, 17))
                                        'inputValue取得后再赋值
                                        .DomTextField("kw").SetText(inputValue)
                                        '.DomTextField("kw").TypeKeys("51testing")
                                        .DomButton("su").Click(MouseButton.Left, New Point(72, 14))
                                        'kwtext = .DomTextField("kw").GetProperty("value")
                                        'System.Console.WriteLine(kwtext)
                                Next
                       
                        End With
                End With
               
        End Sub
End Module

zgyfxsh 发表于 2014-1-27 17:08:40

为什么我在Net里面copy你的这句话,报了“Leading '.' or '!' can only appear inside a 'With' statement.”这个问题,求解。
错误定位是:“.DomTextField("kw").Click(MouseButton.Left, New Point(146, 17))”

yong_sun 发表于 2014-3-4 14:38:19

回复 2# zgyfxsh


    你应该有.开头的语句在 With 语句对之外吧
页: [1]
查看完整版本: SilkTest系列---中级篇(.NET Script)之读数据文件