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什么的,以后要是再有什么疑难问题,好向你请教,呵呵