求助一个QTP登录参数化后迭代的问题
在下接触QTP不深,正在学习中,在编写一个登录页面脚本时,遇到问题,请各位大虾不吝赐教目的是将将登录用户名,密码,验证码(测试时改成万能验证码了)参数化后读取DATATABLE里的数据来登录,验证登录功能
以下代码不会报错,但是只能读取第一行的数据,想实现循环功能以读取所有数据来登录
Dim status '定义一个状态参数
Dim text
Dim innerText'定义弹出的窗口内容
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("name").Set DataTable("UserName", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("password").SetSecure DataTable("password", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("code").Set DataTable("code", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").Image("button").Click
status=DataTable("status",dtLocalSheet)
'成功登录
If status="" then
Reporter.ReportEvent micPass, "成功","登录成功"
Browser("网维通流量管理系统").Close
DataTable.GetSheet("login").SetNextRow '读取datatable中的下一个用户名和密码。
end if
'用户名或密码为空 (该种情况是win窗口弹出的提示信息)
ifBrowser("网维通流量管理系统").Dialog("Microsoft Internet Explorer").Exist then
text=Browser("网维通流量管理系统").Dialog("Microsoft Internet Explorer").Static("不能为空").GetROProperty("Text")
If text=status then
Reporter.ReportEvent micPass, "失败",text
DataTable.GetSheet("login").SetNextRow ' 读取datatable中的下一个用户名和密码。
else
Reporter.ReportEvent micFail,"异常","有错误"
end if
Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("网维通流量管理系统").Close
end if
'用户名或密码错误 (该情况是程序自己提示的信息)
if Browser("Browser").Page("page").Exist then
innertext=Browser("Browser").Page("page").WebElement("WebTable").GetROProperty("innerText")
iftrim(innertext)=status then
Reporter.ReportEvent micPass, "失败",innertext
DataTable.GetSheet("login").SetNextRow '读取datatable中的下一个用户名和密码。
else
Reporter.ReportEvent micFail,"异常","有错误"
end if
Browser("Browser").Close
end if 自己顶一下:) 没人帮忙吗?麻烦斑竹来看下啊 你的action里面的循环是不是只设置了一次? 应该要读取所有行,而test工程是只循环一次
回复 2# 的帖子
大概是没有循环语句的原因吧,我也是初学推荐一个视频:http://www.boobooke.com/v/bbk2099/ 不知道你是想运行一次action就想把所有数据都跑一遍,还是运行一次action就跑一行数据?
前者要加个循环,后者把DataTable.GetSheet("login").SetNextRow 这个语句注释掉。
回复 7# 的帖子
我想在这个ACTION里面循环依次读取DATATABLE里的所有数据 自己搞定了'SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe", "http://10.143.132.229:8080/TSM2"
Dim status '定义一个状态参数
Dim text
Dim innerText
Dim i
i=0
While i<DataTable.GetSheet("login").GetRowCount
wait 3
'MsgBox (DataTable.GetSheet("login").GetRowCount)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("name").Set DataTable("UserName", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("password").SetSecure DataTable("password", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").WebEdit("code").Set DataTable("code", dtLocalSheet)
Browser("网维通流量管理系统").Page("网维通流量管理系统").Image("button").Click
status=DataTable("status",dtLocalSheet)
' '成功登录
If status="" then
Reporter.ReportEvent micPass, "成功","登录成功"
'Browser("网维通流量管理系统").Close
end if
'' 用户名或密码为空 (该种情况是win窗口弹出的提示信息)
status=DataTable("status",dtLocalSheet)
ifBrowser("网维通流量管理系统").Dialog("Microsoft Internet Explorer").Exist then
text=Browser("网维通流量管理系统").Dialog("Microsoft Internet Explorer").Static("不能为空").GetROProperty("Text")
If text=status then
Reporter.ReportEvent micPass, "失败",text
else
Reporter.ReportEvent micFail,"异常","有错误"
end if
Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
'Browser("网维通流量管理系统").Close
end if
'用户名或密码错误 (该情况是程序自己提示的信息)
status=DataTable("status",dtLocalSheet)
if Browser("网维通流量管理系统").Page("page").WebElement("WebTable").Exist then
innertext=Browser("网维通流量管理系统").Page("page").WebElement("WebTable").GetROProperty("innerText")
ifinnertext=status then
Reporter.ReportEvent micPass, "失败",innertext
'
else
Reporter.ReportEvent micFail,"异常","有错误"
end if
Browser("网维通流量管理系统").Back
'Browser("Browser").Close
end if
i=i+1
DataTable.GetSheet("login").SetNextRow()
wend
页:
[1]