xueboy118 发表于 2006-5-30 16:16:28

添加msgbox sql   脚本如下:
Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("username").Set DataTable("Pname", dtGlobalSheet)
usname = Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("username").GetROProperty("Text")
Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("password").SetSecure "447bc007c1401dd4511996463d35fd01"
Browser("网站后台管理系统").Page("网站后台管理系统").WebButton("登 录").Click
Dim res,cmd,sql
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activeconnection="Provider = Sqloledb; User ID = sa; Password = sa; Initial Catalog =bb; Data Source = 192.168.2.196 "
Cmd.CommandType = 1
sql="selec t*from admin_userwhere name='"&username&"'"
Cmd.CommandText = sql
msgbox sql
Set res = Cmd.Execute()
msgbox sql
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing
Browser("网站后台管理系统").Page("网站后台管理").Sync

QuickTest执行时msgbox的提示信息如下:
selec t*from admin_userwhere name=' '

我在usname = Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("username").GetROProperty("Text") 前,又试着添加了Dimusname,运行后结果同上

michaelyung 发表于 2006-5-30 16:25:21

你的username和前面的usname不一样啊,username当然为空啊。
还有sql是个字符串,你msgbox sql返回的就是sql的值,所以username获取到了,sql才包含username的值。

[ 本帖最后由 michaelyung 于 2006-5-30 16:26 编辑 ]

xueboy118 发表于 2006-5-30 16:30:36

michaelyung ,我用object spy 在activeScreen的登录页面的用户名输入框点了一下,属性中有text 属性,在object spy中值为:======管理员身份验证=====登录名 :密码 :
点击把值拷贝出来后的代码为:
usname = Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("username").GetROProperty("Text")
object spy 中的属性太多了,我也不知道你说的属性是不是指这个,我不会使用帖图功能 ,只能手敲了

michaelyung 发表于 2006-5-30 16:35:52

我刚才随便试了下就行啊。你改成这样:

username = objParent.WebEdit("name:= username").GetROProperty("value")   //用我前面给你的编程代码,并且替代这里的括号里的username的值。(属性是name的值)

msgbox username

我刚才试了下都是可以获取到的,我也不知道怎么给你描述了。

xueboy118 发表于 2006-5-30 16:38:59

michaelyung,不好意思。我刚改了,运行后,还是提示
selec t*from admin_userwhere name=' '

michaelyung 发表于 2006-5-30 16:39:07

给你我刚才的一个demo的代码,你先看明白了再说吧:(新建一个Test,考过去就可以运行了)

        SystemUtil.CloseDescendentProcesses

        strInstanceUrl = "http://newtours.mercuryinteractive.com/tour/"
        strBrowser = "Welcome: Mercury Tours"
        strPage="Welcome: Mercury Tours"
        systemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe", strInstanceUrl
       
        Dim objParent
        Set objParent = Browser("title:=" & strBrowser).Page("title:=" & strPage)

        objParent.WebEdit("name:=UserName").Set "Michael Yang"
        MsgBox objParent.WebEdit("name:=UserName").getROProperty("value")

michaelyung 发表于 2006-5-30 16:40:36

原帖由 xueboy118 于 2006-5-30 16:38 发表
michaelyung,不好意思。我刚改了,运行后,还是提示
selec t*from admin_userwhere name=' '
你前面不是有一个username=的语句吗,你看下那个地方username的值到底获取到没有啊。

如果为空,当然后面name的值也为空啊。

michaelyung 发表于 2006-5-30 16:44:09

一切很正常啊,你那很多小问题,所以需要你弄清楚很多基本的问题,否则代码不好解释的。
        SystemUtil.CloseDescendentProcesses
        strInstanceUrl = "http://newtours.mercuryinteractive.com/tour/"
        strBrowser = "Welcome: Mercury Tours"
        strPage="Welcome: Mercury Tours"
        systemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe", strInstanceUrl
       
        Dim objParent
        Set objParent = Browser("title:=" & strBrowser).Page("title:=" & strPage)

        Dim username
        objParent.WebEdit("name:=UserName").Set "Michael Yang"
                      username = objParent.WebEdit("name:=UserName").getROProperty("value")
                     sql="selec t*from admin_userwhere name='" & username & "'"
        msgbox sql

[ 本帖最后由 michaelyung 于 2006-5-30 16:45 编辑 ]

xueboy118 发表于 2006-5-30 17:11:45

我在usname = Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("username").GetROProperty("Text")
后添加了msgbox sql    提示selec t*from admin_userwhere name=' '

michaelyung
你的代码,我除了第一句没看懂外,别的差不多都能明白,不知道怎么搞得,用你最早给我的那个代码,修改后,就是 执行不下去,执行到objParent.WebEdit("text:=登录名:").Set strName 就卡住了

michaelyung 发表于 2006-5-30 17:16:43

1. 我说过了你那个地方写错了,是username不是usname,你两个地方不一致。
usname = Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("username").GetROProperty("Text")
还没发现吗,第一个。
2. getROProperty("Text")改成getROProperty("value")
3. objParent.WebEdit()里的text改成name.

xiaonan 发表于 2006-5-30 17:27:14

怎么一个问题用了那么多帖子啊?

xueboy118 发表于 2006-5-30 17:45:00

修改的脚本如下:
Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("username").Set DataTable("Pname", dtGlobalSheet)
username = Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("username").GetROProperty("value")
Browser("网站后台管理系统").Page("网站后台管理系统").WebEdit("password").SetSecure "447bc007c1401dd4511996463d35fd01"
Browser("网站后台管理系统").Page("网站后台管理系统").WebButton("登 录").Click
Dim res,cmd,sql
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activeconnection="Provider = Sqloledb; User ID = sa; Password = sa; Initial Catalog =bb; Data Source = 192.168.5.196 "
Cmd.CommandType = 1
sql="selec t*from admin_userwhere name='"&username&"'"
Cmd.CommandText = sql
msgbox sql
Set res = Cmd.Execute()
msgbox sql
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing
Browser("网站后台管理系统").Page("网站后台管理").Sync
执行后第一个msgbox   提示select * from admin_userwhere =' admin'    QuickTest提示 第 1 行: '*' 附近有语法错误   
黄色箭头还是指向   Set res = Cmd.Execute()

xueboy118 发表于 2006-5-30 17:56:24

Dim objParent, strName, strPassword   
strName = "admin"
strPassword="admin"   
Set objParent = Browser("title:=网站后台管理系统").Page("title:=网站后台管理系统")
objParent.WebEdit("name:=登录名:").Set strName
objParent.WebEdit("name:=密 码:").Set strPassword
objParent.WebButton("text:=登 录").Click

Dim res,cmd,sql
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activeconnection="Provider = Sqloledb; User ID = sa; Password = sa; Initial Catalog =bb; Data Source = 192.168.2.196 "      
Cmd.CommandType = 1
sql="select*from admin_userwhere name="&strName
Cmd.CommandText = sql
Set res = Cmd.Execute()

Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing

objParent.sync()
执行后,QuickTest提示
Cannot identify the object "WebEdit" (of class WebEdit). Verify that this object's properties match an object currently displayed in your application.
黄色小箭头指向    objParent.WebEdit("name:=登录名:").Set strName

xiaonan 发表于 2006-5-31 08:45:38

晕,你这句话怎么写的啊?sql="selec t*from admin_userwhere name='"&username&"'"
跟你说selec t 我多加了个空格,应该是这样的select, 怎么自己一点都不去思考一下呢?
这样再试
sql="select*from admin_userwhere name='"&username&"'"还有取出来的字符最好去一下空格

xueboy118 发表于 2006-5-31 09:34:17

xiaonan,不好意思,QuickTest中的空格不是很明显,我没有细心检查
昨天你们两个人两种方法,搞得我疲于调试,跟本就没时间注意细节
我刚才有重新调试了一下 ,用你的方法,已经可以执行下去了,
在此,非常感谢你和michaelyung 对我的帮助。

xiaonan 发表于 2006-5-31 10:14:45

呵呵,没事!如果我上面的话,那些地方说的有点不妥也请你别放在心上.只是替你有点着急.没别的意思,:)

xueboy118 发表于 2006-5-31 10:27:54

没什么的,你也是出于好心,在次感谢
顺便在问一下,QuickTest的脚本中的编程代码,与VBscript的代码是否相同,还是在本质上有所区别?

xiaonan 发表于 2006-5-31 10:50:06

QuickTest的脚本就是用的VBscript的代码,所以如果你对VBscript熟的话,学QTP就容易些

swallow0918 发表于 2006-5-31 11:20:14

xiaonan 现在很厉害啊!

xueboy118 发表于 2006-5-31 11:24:41

xiaonan,能否留个联系方式,MSN或QQ什么的,以后要是再有什么疑难问题,好向你请教,呵呵
页: 1 2 [3] 4
查看完整版本: 如何使用Database checkpoint检查添加的数据是否正确???