xieyang702 发表于 2011-1-11 17:36:25

把对象库和脚本分离,但运行出问题?

对象库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:05

调试一下,看objectFilePath 取的路径对不对

xieyang702 发表于 2011-1-12 09:08:30

回复 2# gztester

objectFilePath = pathFind(Environment("objectScriptFolderName"),"login","vbs")
上面那句取得的objectFilePath是对的 ,执行到下面这句就不行了            
ExecuteFile(objectFilePath) '加载对象库         

gztester 发表于 2011-1-12 09:16:51

报什么错啊?截个图看看

改成这样试试:
ExecuteFile    objectFilePath'加载对象库

shingo0109 发表于 2011-1-12 11:33:10

LZ把报错信息发上来看看

xieyang702 发表于 2011-1-12 15:55:42

本帖最后由 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:40

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:06

回复 7# skyzhu

非常感谢,终于运行顺畅了
页: [1]
查看完整版本: 把对象库和脚本分离,但运行出问题?