51Testing软件测试论坛

标题: 把对象库和脚本分离,但运行出问题? [打印本页]

作者: xieyang702    时间: 2011-1-11 17:36
标题: 把对象库和脚本分离,但运行出问题?
对象库object/login.vbs
Set Login_Browser = Description.Create()
                Set Login_Page = description.create()

                                Set Login_WebEdit_UserName = Description.Create()
                                        Login_WebEdit_UserName("name").Value = "_ctl0:content:username"
                                        Login_WebEdit_UserName("type").Value = "text"
                                Set Login_WebEdit_Password = Description.Create()
                                        Login_WebEdit_Password("name").Value = "_ctl0:content:password"
                                Set Login_WebButton_Login = Description.Create()
                                        Login_WebButton_Login("name").Value = "Login"
                                        Login_WebButton_Login("type").Value = "submit"

脚本 testscript/login.vbs
class Login
        Function login(Sheet_Name)
msgbox("test")
               
                '关闭所有的IE窗口,避免出现问题
                SystemUtil.CloseProcessByName "iexplore.exe"
                SystemUtil.Run "iexplore.exe",DataTable("URL",Sheet_Name),"","open","3"
               
                '先加载对象库,在加载脚本文件
                objectFilePath = pathFind(Environment("objectScriptFolderName"),"login","vbs")
                ExecuteFile(objectFilePath) '加载对象库       
       

                curPage = Browser(Login_Browser).Page(Login_Page)
                Login_Page.Sync
                wait 10
                curPage.Login_WebEdit_UserName.Set DataTable("用户名",Sheet_Name)
                    curPage.Login_WebEdit_Passwor.Set DataTable("密码",Sheet_Name)
                curPage.Login_WebButton_Login.Click
                wait 5

        End Function
end class

运行到粗体这里就出问题了,如果把粗体部分去掉,在resource里加这个对象文件,也不行。
为啥啊?
作者: gztester    时间: 2011-1-11 18:41
调试一下,看objectFilePath 取的路径对不对
作者: xieyang702    时间: 2011-1-12 09:08
回复 2# gztester

objectFilePath = pathFind(Environment("objectScriptFolderName"),"login","vbs")
上面那句取得的objectFilePath是对的 ,执行到下面这句就不行了            
ExecuteFile(objectFilePath) '加载对象库         
作者: gztester    时间: 2011-1-12 09:16
报什么错啊?截个图看看

改成这样试试:
ExecuteFile    objectFilePath  '加载对象库
作者: shingo0109    时间: 2011-1-12 11:33
LZ把报错信息发上来看看
作者: xieyang702    时间: 2011-1-12 15:55
本帖最后由 xieyang702 于 2011-1-12 16:33 编辑

回复 4# gztester
回复 5# shingo0109


把代码改成这样:
'先加载对象库,在加载脚本文件
                objectFilePath = pathFind(Environment("objectScriptFolderName"),"login","vbs")
msgbox(objectFilePath)
                ExecuteFile objectFilePath '加载对象库               

                wait 10
                'enter the username and password
                Browser(Login_Browser).Page(Login_Page).Login_WebEdit_UserName.Set DataTable("用户名",Sheet_Name)
                    Browser(Login_Browser).Page(Login_Page).Login_WebEdit_Passwor.Set DataTable("密码",Sheet_Name)
                Browser(Login_Browser).Page(Login_Page).Login_WebButton_Login.Click
报错:
Object doesn't support this property or method: 'Browser(...).Page(...).Login_WebEdit_UserName'
作者: skyzhu    时间: 2011-1-12 17:11
Browser(Login_Browser).Page(Login_Page).Login_WebEdit_UserName.Set DataTable("用户名",Sheet_Name)
这么写语法就是错的了,没报错才是神奇了
至少也应该是
Browser(Login_Browser).Page(Login_Page).WebEdit(Login_WebEdit_UserName).Set DataTable("用户名",Sheet_Name)

关于调用VBS,用resource方便一点,有些只能QTP执行的内容用代码导入可能会报错
或者用下面的试试
Sub importfile(filepath)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ReadFile = fso.OpenTextFile(filepath,1)
    ExecuteGlobal ReadFile.ReadAll
End Sub
作者: xieyang702    时间: 2011-1-12 17:39
回复 7# skyzhu

非常感谢,终于运行顺畅了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2