QTP问题
1、先建一个access表TestNumberOneTestNumberTwo1 2
3 4
5 6
7 8
2、QTP的代码为:
Dim cnn 'As ADODB.Connection
Dim Rst 'As ADODB.Recordset
Dim strcnn' As String
Dim TestNumberOne 'As String
Dim TestNumberTwo 'As String
strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\AAA\桌面\qtp\qtpDataBase.mdb;Persist Security Info=False"
Set cnn =CreateObject("ADODB.Connection")
cnn.Open strcnn
Set Rst = CreateObject("ADODB.Recordset")
Rst.Open "select * from testdata", cnn
Rst.MoveFirst
Do While Rst.EOF <> True
TestNumberOne = Trim(Rst.Fields(0))
TestNumberTwo =Trim( Rst.Fields(1))
Window("计算器").WinButton(TestNumberOne).Click
Window("计算器").WinButton("+").Click
Window("计算器").WinButton(TestNumberTwo).Click
Window("计算器").WinButton("=").Click
Rst.MoveNext
Loop
Rst.Close
Set Rst = Nothing
Set cnn = Nothing
运行后的结果报错:The "3"WinButton was not found in the Bofect Rspository.Check the Object Repository to Confirm that the object exists or to find the correct name for the object.
它只有运行录制的1+2。后面的都不能运行。如果把3改成别的数报错。给我的感觉,并没有从数据库中读出数据。单步调试,第二次到Window("计算器").WinButton(TestNumberOne).Click就出错。
有谁能告诉我这是为什么。连EXCEL也是一样的问题。 WinButton(TestNumberTwo)
括号中的内容是测试对像的名字。你应该修改对象的属性值,而不是修改对象的名字。新的对象名在对象存储库不存在所以抱错。
1,2不报错是因为你录制脚本的时候,录制的操作是1+2,这两个对象在对象存储库中已经存在。 能不能再说的详细一些!我是在网上听的课程,周围也没有人可以问。
能不能把具体的改的地方写的详细一些。谢谢! QTP的对象识别原理:
录制过程中,将被测对象识别出来以后,保存在对象存储库中,你在脚本中看到的只是对象的名称,对象的识别信息存放在对象存储库中,QTP回放通过名称到对象存储库中查找对象。
如果你想达到动态识别对象的目的,你要修改对象的识别信息,而不是修改对象的名称,对象的名称可以随便命名,只要脚本中和对象存储库中的一致就可以。
在你这个例子里,你将对象的识别属性的值进行参数化就可以了。你现在犯的错误是,修改了对象的名字,而对象存储库中并不存在你修改后名称的对象。 太不好意思了,我好象很笨。还是不太清楚你说的改对象存储库中的名字,在什么地方改。
你说将对象的识别属性的值进行参数化就可以了。我在keyword view也觉得它和WEB的不一样,不知道在哪里改。
你晚上有时间吗,能不能通过远程协助,你帮我看看。谢谢了!!
我的MSN:hlx666666@hotmail.com
页:
[1]