51Testing软件测试论坛

标题: 如何调用另一个动作的DataTable [打印本页]

作者: poporen    时间: 2011-3-10 16:29
标题: 如何调用另一个动作的DataTable
请教各位大虾:
版本:qtp 10.0
问题:我做登录的脚本录制,有两个动作“Login” 和“Relogin”
在“Login”中有三组数据 包括用户名和密码
Login登录错误将执行Relogin动作 Relogin动作将调用Login动作的DataTable 从第2列数据开始 这个怎么调用咧 看如下我的代码 请教有什么问题

Login代码:
Browser("新浪会员登录").Page("新浪会员登录").WebEdit("username").Set DataTable("p_UserName", dtLocalSheet)
Browser("新浪会员登录").Page("新浪会员登录").WebEdit("password").SetSecure DataTable("p_Password", dtLocalSheet)
Browser("新浪会员登录").Page("新浪会员登录").WebButton("登 录").Click
bCheck=Browser("新浪会员登录").Page("title:=新浪会员登录").Exist
If bCheck Then
        RunAction "Relogin", 1, rngAll
        Else
        RunAction "Search", 0
End If

Relogin代码:
DataTable.GetSheet("Login").SetCurrentRow(2)
Browser("新浪会员登录").Page("新浪会员登录").WebEdit("username").Set DataTable("p_UserName", "Login")
Browser("新浪会员登录").Page("新浪会员登录").WebEdit("password").SetSecure DataTable("p_Password", "Login")
Browser("新浪会员登录").Page("新浪会员登录").WebButton("登 录").Click

运行Login没问题  运行到Region将会连续3次 执行登录操作  输入数据为第2组数据  这是什么原因咧  我想我是没搞清楚RunAction “Login” ,1,rngAll 这个函数和SetCurrentRow(2)的意思,请各位多多指点
作者: poporen    时间: 2011-3-11 10:46
怎么就没大虾指点下哦···新手真迷茫··
作者: 云层    时间: 2011-3-11 12:56
runaction函数在帮助里面会告诉你1,0含义不同一个是只循环一次,一个是遍历datatable里面的所有内容
setcurrentrow的作用是强制指定表中的行号,
如果你要从第二列那么就要这样写了吧
datatable(2,dtglobasheet)
作者: hsjzfling    时间: 2011-3-11 16:22
login和relogin有什么区别呢?用一个不就可以了么? 逻辑如下
do
    login
    DataTable.localsheet.setnextrow
    if DataTable.localsheet.setnextrow.getcurrentrow = 1 then
       exit do
       return login failed
   end if
loop until <login successful>
作者: poporen    时间: 2011-3-17 11:35
多谢3+4楼大虾指点




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