51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1858|回复: 7
打印 上一主题 下一主题

[原创] 拿一小段代码出来研究一下。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-9-7 16:54:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一个web的文件服务器上,取连接。
http://webfileip/web/bat/
http://webfileip/web/msi/
http://webfileip/web/swd/
http://webfileip/web/linux/
http://webfileip/web/exe/
大致的目录结构如上,看我取得方法合理吗?

Public function getlinks(byval ptype)
SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe",Corelinkweb&ptype,"C:\Documents and Settings\Administrator","open"
browser("WebServer").SetTOProperty "name",".*"&ptype
browser("WebServer").Page("WebServer").SetTOProperty "title",".*"&ptype
set linkobj=browser("WebServer").Page("WebServer").Object.links
i=1
For each linkitem in linkobj
        If i>1 Then
                create_pac linkitem,ptype
        End If
        i=i+1
Next
browser("WebServer").Close
End Function
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-9-7 17:21:08 | 只看该作者
代码太难看了,挤成一团sdlkfj7
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-7-13 15:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2007-9-7 17:23:11 | 只看该作者
    create_pac 这个sub是怎么样的?

    ps:循环当中linkitem 所有的链接都是主页面上的

    一旦第一个链接点击之后,当前页面会不会发生跳转呢?

    而下一个循环时,linkitem 仍然是主页面上的链接,于是会产生在当前页面找不到链接的错误
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2007-9-7 17:32:47 | 只看该作者
    Dim parray
    parray=array("/bat/","/exe/","/msi/","/linux/","/swd/")
    For each ptype in parray
    getlinks ptype
    Next

    Public function getlinks(byval ptype)
    SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe",Corelinkweb&ptype,"C:\Documents and Settings\Administrator","open"
    browser("WebServer").SetTOProperty "name",".*"&ptype
    browser("WebServer").Page("WebServer").SetTOProperty "title",".*"&ptype
    set linkobj=browser("WebServer").Page("WebServer").Object.links
    i=1
    For each linkitem in linkobj
            If i>1 Then
                    create_pac linkitem,ptype
            End If
            i=i+1
    Next
    browser("WebServer").Close
    End Function

    Private function Create_pac(linkitem,ptpye)
       Select Case ptype
          Case "/exe/"     ptype="Executable"
          Case "/bat/"      ptype="Batch File"
              Case "/swd/"     ptype="SWD Package"
              Case "/linux/"     ptype="Linux"
              Case "/msi/"     ptype="MSI"
       End Select


    Browser("L").Page("sm").Frame("left").Link("Distribution").Click
    Browser("L").Page("sm").Frame("distributionPackagesTree").WebElement("My distribution packages").Click
    Browser("L").Page("sm").Frame("findfrm").Link("New").Click
    Browser("D").Page("D").Sync
    Browser("D").Page("D").WebList("DropDownListPkgType").Select ptype
    Browser("D").Page("D").WebEdit("_packageNameTextBox").Set linkitem
    Browser("D").Page("D").WebEdit("_descriptionTextBox").Click
    Browser("D").Page("D").WebEdit("_descriptionTextBox").Set linkitem
    Browser("D").Page("D").WebEdit("_primaryFileTextBox").Click
    Browser("D").Page("D").WebEdit("_primaryFileTextBox").Set linkitem
    Browser("D").Page("D").WebButton("Save").Click
    End Function
    谢谢,请多指教,指明所有问题。
    没有link的点击事件发生。只有取当前页上连接的过程,取到所有的以后就把网页关了,下次循环又重新打开另一个。
    我想知道能否在http//webfileip/web上直接一级一级向下取。。。
    还有就是我的结构有什么问题没有。
    最后就是变量,ptype我重复多次使用。
    还有最开始的赋值调用。。
    总之谁看到问题都给指点一下吧、
    yabest,别光说不练,给我修改一下看看。

    原帖由 rivermen 于 2007-9-7 17:23 发表
    create_pac 这个sub是怎么样的?

    ps:循环当中linkitem 所有的链接都是主页面上的

    一旦第一个链接点击之后,当前页面会不会发生跳转呢?

    而下一个循环时,linkitem 仍然是主页面上的链接,于是会产生在 ...

    [ 本帖最后由 jackymail 于 2007-9-7 17:37 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-9-7 17:36:56 | 只看该作者
    原帖由 jackymail 于 2007-9-7 17:32 发表
    ...
    yabest,别光说不练,给我修改一下看看。
    ...


    看不懂,头大sdlkfj7
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-9-8 06:59:34 | 只看该作者
    呵呵,感觉你太懒了,代码不写清楚一点,让人看着很吃力!多敲几个字符很累人吗?
    帮你修改了一下,看看怎样?


    1. Dim PackageTypeArray, PackageNameArray
    2. Dim Corelinkweb
    3. Dim WebFileIP

    4. WebFileIP = "10.20.30.40"
    5. Corelinkweb = "http://" & WebFileIP & "/web"

    6. PackageTypeArray= Array("bat", "exe", "msi", "linux", "swd")
    7. packageNameArray = Array("Batch File", "Executable", "MSI", "Linux", "SWD Package")

    8. 'Loop to save links of each package page
    9. For packageIndex = 0 to UBound(packageTypeArray)
    10.   curPackageType = PackageTypeArray(packageIndex)
    11.   curPackageName = packageNameArray(packageIndex)
    12.   call SavePackagePageLinks(curPackageType, curPackageName)
    13. Next

    14. Public Function SavePackagePageLinks(ByVal PackageType, ByVal PackageName)
    15.   Dim packageDir, packageUrl
    16.   Dim iePath
    17.   Dim linkIndex, curLink

    18.   packageDir =  "/" & PackageType & "/"
    19.   packageUrl = Corelinkweb & packageDir
    20.   iePath = ""C:\Program Files\Internet Explorer\iexplore.exe"

    21.   'Open the package page
    22.   SystemUtil.Run iePath, packageUrl , "C:\Documents and Settings\Administrator", "open"

    23.   'Init the OR object
    24.   Browser("WebServer").SetTOProperty "name", ".*" & packageDir
    25.   Browser("WebServer").Page("WebServer").SetTOProperty "title", ".*" & packageDir

    26.   'Loop to save each link of package page, skip the first link
    27.   Set packagePageLinks = browser("WebServer").Page("WebServer").Object.links
    28.   For linkIndex = 1 to UBound(packagePageLinks)
    29.       curLink = curPageLinks(linkIndex)
    30.       Browser("L").Page("sm").Frame("left").Link("Distribution").Click
    31.       Browser("L").Page("sm").Frame("distributionPackagesTree").WebElement("My distribution packages").Click
    32.       Browser("L").Page("sm").Frame("findfrm").Link("New").Click
    33.       Browser("D").Page("D").Sync
    34.       Browser("D").Page("D").WebList("DropDownListPkgType").Select PackageName
    35.       Browser("D").Page("D").WebEdit("_packageNameTextBox").Set curLink
    36.       Browser("D").Page("D").WebEdit("_descriptionTextBox").Set curLink
    37.       Browser("D").Page("D").WebEdit("_primaryFileTextBox").Set curLink
    38.       Browser("D").Page("D").WebButton("Save").Click
    39.   Next

    40.   'Close browser
    41.   Browser("WebServer").Close

    42. End Function

    复制代码

    [ 本帖最后由 yabest 于 2007-9-8 07:20 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-9-8 07:54:17 | 只看该作者
    纯是拿QTP做编程工具了
    无语
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2007-9-10 10:19:34 | 只看该作者
    学习了。。。。

    原来去掉第一个数组是通过从arrayindex调整就可以了。。我还if ...>1呢。
    把变量命名清楚一点是很好。


    原帖由 yabest 于 2007-9-8 06:59 发表
    呵呵,感觉你太懒了,代码不写清楚一点,让人看着很吃力!多敲几个字符很累人吗?
    帮你修改了一下,看看怎样?


    Dim PackageTypeArray, PackageNameArray
    Dim Corelinkweb
    Dim WebFileIP

    WebFileIP = ...
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 03:42 , Processed in 0.076273 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表