Window("Flight Reservation").WinEdit("Name:").Set DataTable("name", dttestSheet)
Window("Flight Reservation").WinEdit("Name:").Set DataTable("name", dtGlobalSheet)
// 我相信在global工作表中可以正确执行,但换在test工作表中就不行
tempData=DataTable.GetSheet("51sheet").GetParameter("name").Value //用这种方法是可以正确读取某行某个参数的值 概念不清楚的、我还是建议最好不要用
dttestSheet
dtGlobalSheet
而且,最好不要用Global的sheet。
其实,呵呵,能永就行了,能达到你的使用目的就行了。
这个东西做的可能就问题,所以理解起来也难免有问题。还是别理解了。呵呵。 lzz:
分开写。
a) datatable.getsheet("sportCaption") //不清楚这行有什么作用
b) datatable.setcurrentrow(i) // 这是将当前行设置为第i行在global运行数据表中,而我这里希望的并不是这样。
其实我也不知道为什么这样写就对。呵呵
按我的理解,datatable就好像你打开的excel文件。默认的是打开第一个sheet的
你可以做datatable.setcurrentrow(i)
而你datatable.getsheet("sportCaption") 以后,
你就能选到这个sheet上,并且对它进行操作。比如setcurrentrow
不知道这么理解对不对,
如果这么理解正确的话,呵呵,那可真要小心哦。
连起来的按说应该也对的啊。不知道你的怎么不对了。
现在对了么??能取下面行的值么?
[ Last edited by lovetest6 on 2005-6-22 at 14:32 ] 这个问题到底解决了没有呢,我按照这样做也出现只执行1行的现象呢 问问楼主不就知道是否解决了嘛。呵呵:)
还不清楚的去别的贴上找吧。 在大家的热心帮助下,按照lovetest6所说的方法,问题已经解决了. datatable.getsheet("sportCaption")
datatable.setcurrentrow(i)
分开写的这种方法么??怎么我的还是不行,再试试 呵呵,谢谢各位哦。
michelle_happy:如果还不行,就加我msn吧,或者站内短信也行:) Originally posted by michelle_happy at 2005-6-24 05:09 PM:
datatable.getsheet("sportCaption")
datatable.setcurrentrow(i)
分开写的这种方法么??怎么我的还是不行,再试试
我看了一圈。。怎么看不明白。。。
为什么要搞这么复杂呢。。。
如果只是为了取表。。
我是用类似下面的方法。。
DataTable.AddSheet("name")
DataTable.ImportSheet "C:\name.xls" ,1 ,"name"
msgbox DataTable.GetSheet ("name").GetCurrentRow
DataTable.GetSheet("name").SetNextRow
msgbox DataTable.GetSheet ("name").GetCurrentRow
DataTable.GetSheet("name").SetCurrentRow(3)
msgbox DataTable.GetSheet ("name").GetCurrentRow
有什么不好呢?
=_=b Originally posted by lzz at 2005-6-21 11:59 AM:
请大家帮我解决一下下面的问题.
我要新增一项资料,把新增资料中要用到的数据放在一个excel表中,然后在运行的时候导入该execl表。然后用一个循环分别读取excel表中的数据。为什么我运行的时候只能读取第一行的数 ...
看了不太明白
dtsportCaptionSheet
这个id从哪里得到的?
dtGlobalSheet 是全局表的默认id把?
自己添加表的id也是这个格式么/
Originally posted by QA_BAY at 2005-6-21 11:59 AM:
datatable.SetNextRow-------加这一行,是想看一下有没有取到下一行的数据,结果没有
这句还是有问题的
我觉得你应该用
datatable.GlobalSheet.SetNextRow
虽然我没有试过。。但是我觉得你这里不应该这样写的
即使默认中间没有制定sheet。。就会指到GlobalSheet。你也应该写上这么一句。。
另外
datatable.ImportSheet "C:\name.xls" ,1,Global
这里后面用到的是表名。。事实上后面你又用到dtGlobalSheet。。
起码从看上面。。实在挺混乱的。为什么不用一样的呢。。。
我总是觉得。简单就是最好。。。
能统一就统一。。包括格式。变量。能写清楚就写清楚地好。。
比如
datatable.getsheet("sportCaption")
datatable.setcurrentrow(i)
这种用法。。。能避免最好还是少用的八。。。
[ Last edited by dfinger on 2005-6-25 at 10:39 ] 不怕用错,怕的是概念不正确,如果概念不正确,那么不出错也只是暂时的。呵呵:)
我在datatable和dtsheet 的帖中详细的写了一下,你看看有什么不正确的,或者要补充的,帮忙加一下哦:) dfinger分析得很正确
现在已经更正过来了.
真是受益非浅 偶弄成功了,那天不成功估计是录制的问题,但是直接就是写的datatable.GetSheet("temp").SetCurrentRow(i)
没有分为2行写啊。
偶查了一下帮助,dtsportCaptionSheet这种写法好像不对头,只有dtLocalSheet和dtGlobalSheet. 其他名字的Sheet用index,或者直接用 “sheet名”
回复 #33 michelle_happy 的帖子
你说的很对,为避免大家看的晕头转向,我把自己做的例子贴出来,方便大家查看。SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\","open"
Dialog("Login").WinEdit("Agent Name:").Set "lily"
Dialog("Login").WinEdit("Password:").SetSecure "45a8b17dacf40124f0d69b9493df0dd3adff1d48"
Dialog("Login").WinButton("OK").Click
Datatable.AddSheet("TicketName")
Datatable.ImportSheet "C:\ticket_name.xls",1,"TicketName"
Dim i,rowcount
i=0
rowcount=Datatable.GetSheet("TicketName").getrowcount
reporter.ReportEvent 2,"there are "&rowcount,"row in this data table"
Do while i<rowcount
i=i+1
Datatable.Getsheet("TicketName").setcurrentrow(i)
Window("Flight Reservation").WinButton("Button").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Type "011907"
Window("Flight Reservation").WinComboBox("Fly From:").Select "Denver"
Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "20260 DEN 08:12 AM LON 03:23 PM AA $112.20"
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set DataTable("Name", 3)
Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0,1
Window("Flight Reservation").WinEdit("Tickets:").Set DataTable("Tickets", 3)
Window("Flight Reservation").WinRadioButton("Business").Set
Window("Flight Reservation").WinButton("Insert Order").Click
Loop
注释:Window("Flight Reservation").WinEdit("Name:").Set DataTable("Name", 3)
Window("Flight Reservation").WinEdit("Tickets:").Set DataTable("Tickets", 3)
'其中的3是指表单的index,即新建的标单TicketName
这两行语句也可以这样写:
Window("Flight Reservation").WinEdit("Name:").Set DataTable("Name", "TicketName")
Window("Flight Reservation").WinEdit("Tickets:").Set DataTable("Tickets", "TicketName")
如果还有疑问,请查看贴子:
http://bbs.51testing.com/thread-56424-1-1.html 马上要学qtp了,看看满难的,一定要好好学!以后我想就在自动化测试发展了。 我认为“Browser("::::School Sports Programe").Page("::.SSP System.::").WebEdit("noOfRegister").Set DataTable("noOfRegister", dtsportCaptionSheet)“这行中dtsportCaptionSheet的用法是错误的,QTP中没有这种用法,只有
dtglobalsheet和dtlocalsheet这两种用法;
应把dtsportCaptionSheet改为“SportCaption",我想就可以了
在QTp中怎样将运行数据表中的数据返回到Excel表中
采用数据驱动的方法现将Excel表中的数据导出来,然后对数据进行修改,在导回去,这样应该怎样做啊?谢谢各位大侠给于指教 rowCount=DataTable().getrowcountfor i =1 to rowCount
DataTable.setcurrentrow(i)
next 看了半天,终于有人点出问题的重点了:
machao514: 应把dtsportCaptionSheet改为“SportCaption",
既然导入的时候命名的LocalSheet是“SportCaption", 为什么后面要去用“dtsportCaptionSheet”呢???
[ 本帖最后由 vernzhang1980 于 2009-7-8 18:08 编辑 ] Set wshshell = createobject("wscript.shell")
datatable.AddSheet("51test")
datatable.GetSheet("51test").AddParameter "newvalue", "row1value"
rowcur = datatable.GetSheet("51test").GetRowCount()
For i = 1 + rowcur to 10
DataTable.SetCurrentRow(i)
DataTable.Value("newvalue", "51test") = "row1value" & i
'datatable.GetSheet("51test").AddParameter "newvalue", "rowvalue" & i
'datatable.GetSheet("Global").AddParameter "newvalue", "rowvalue" & i
Next
rownum = datatable.GetSheet("51test").GetRowCount()
wshshell.Popup rownum, 1, "title"
For i = 1 to rownum
DataTable.SetCurrentRow(i)
datatable.GetSheet("51test").GetParameter( "newvalue")
Set wshshell = createobject("wscript.shell")
wshshell.Popup datatable.GetSheet("51test").GetParameter("newvalue"), 1, "title"
' datatable.GetSheet("Global").AddParameter "newvalue", "rowvalue" & i
Next
大家试一下这段代码,
页:
1
[2]