51Testing软件测试论坛
标题:
SetCurrentRow怎么无效
[打印本页]
作者:
KingRight
时间:
2009-1-19 14:24
标题:
SetCurrentRow怎么无效
我有个resuable action,名字叫login,代码如下:
Browser("web1").Page("page1").WebEdit("email").Set DataTable("Email", dtLocalSheet)
Browser("web1").Page("page1").WebEdit("password").SetSecure "5345325325325ewr34r5324325r436343532"
Browser("web1").Page("page1").WebButton("登录").Click
在datatable的login的sheet中有两行Email
---------------------------------
然后在另外一个脚本中进行了调用,我是想先登录,判断currentrow,如果是1就退出再用B登录,如果是2就退出再用A登录。脚本如下
'当前行
currentrow = DataTable.GetSheet("login").GetCurrentRow()
'退出
RunAction "logout", oneIteration
'用另一用户登录
If currentrow = 1 Then
DataTable.GetSheet("login").SetCurrentRow(2)
else
DataTable.GetSheet("login").SetCurrentRow(1)
End If
'登录
RunAction "login", oneIteration
currentrow 都正确得出了,但是运行的时候发现,脚本运行了两次,两次都是用的一个Email登录的,而第二次没有改变。
请高手帮忙看看是什么原因啊,谢谢。
[
本帖最后由 KingRight 于 2009-1-19 14:26 编辑
]
作者:
KingRight
时间:
2009-1-19 14:49
作者:
happychap
时间:
2009-1-19 16:58
好象可复用的Action并不与该Action的DataTable绑定吧。
通过参数来实现你的功能吧。
作者:
KingRight
时间:
2009-1-19 17:07
原帖由
happychap
于 2009-1-19 16:58 发表
好象可复用的Action并不与该Action的DataTable绑定吧。
通过参数来实现你的功能吧。
我引用login的时候会提示是否引入dataTable,我选的是,这样目前的脚本就有了和login中一样的dataTable,上面的语句应该是针对当前脚本的dataTable而言的
作者:
happychap
时间:
2009-1-19 17:12
遇到这种情况,我都是用给Action添加参数解决的。
作者:
KingRight
时间:
2009-1-20 22:52
谢谢楼上的,但是你知道为什么我那样不行吗? 是哪里出了问题的?
作者:
asoqa
时间:
2009-1-21 00:33
runaction方法在读datatable的光标是独立的,我想很可能和这个有关系。你有两个脚本,一个登录脚本,一个调用脚本,你的email是放在登录脚本的sheet中吧,如果想达到你的目的,应该将下面这段代码放到login方法中
currentrow = DataTable.GetSheet("login").GetCurrentRow()
'用另一用户登录
If currentrow = 1 Then
DataTable.GetSheet("login").SetCurrentRow(2)
else
DataTable.GetSheet("login").SetCurrentRow(1)
End If
[
本帖最后由 asoqa 于 2009-1-21 00:43 编辑
]
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2