51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1659|回复: 5
打印 上一主题 下一主题

[原创] 如何实现点击页面中的所有link

[复制链接]
  • TA的每日心情
    郁闷
    2018-11-15 14:58
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2011-1-12 16:30:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    Dim oDesc,colObject
    Set oDesc = Description.Create
    oDesc( "micclass" ).value = "Link"        
    Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc )

    For x = 0 to colObject.Count - 1
            'MsgBox colObject(x).GetROProperty("innertext")
        colObject(x).Click
            wait(2)
       '点击第一个link时页面跳转到其它页面,需要返回当前首页
        SystemUtil.Run "IEXPLORE.EXE","http://www.google.com.hk"
            wait(2)
    Next

    上面已经获取到所有的link,但是实现click时就报错,请教大师们要如何实现?
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-11-15 14:58
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    2#
     楼主| 发表于 2011-1-12 16:45:01 | 只看该作者
    Dim oDesc,colObject
    Set oDesc = Description.Create
    oDesc( "micclass" ).value = "Link"        
    Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc )
    Set ieBrowser = CreateObject("InternetExplorer.Application")
    For x = 0 to colObject.Count - 1
            'MsgBox colObject(x).GetROProperty("innertext")
        colObject(x).Click
            wait(2)
        'SystemUtil.Run "IEXPLORE.EXE","http://www.google.com.hk"
            ieBrowser.Navigate "http://www.google.com.hk"
            wait(2)
    Next

    我用当前页面打开时,ieBrowser.Navigate "http://www.google.com.hk",这个不能执行
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2011-1-14 13:20:14 | 只看该作者
    Dim oDesc,colObject
    Set oAutoIt = CreateObject("AutoItX3.Control")
    Set oDesc = Description.Create
    oDesc( "micclass" ).value = "Link"  
    Set colObject=Browser("百度一下,你就知道").Page("百度一下,你就知道").ChildObjects(oDesc)
    Browser("百度一下,你就知道").Page("百度一下,你就知道").Sync
    Setting.WebPackage("ReplayType") = 2
    For i = 0 to colObject.Count - 1
    '        MsgBox colObject(i).GetROProperty("innertext")

        colObject(i).Click, ,micRightBtn
         oAutoIt.Send("{DOWN 2}")
         oAutoIt.Send("{ENTER}")
         oAutoIt.Send ("^{tab}")

    wait 3
         oAutoIt.Send("^{w}")
    next
    Setting.WebPackage("ReplayType") = 1
    可以通过模拟键盘操作完成这样的操作
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2011-1-14 14:20:23 | 只看该作者
    Dim oDesc,colObject

    SystemUtil.Run "IEXPLORE.EXE","http://www.google.com.hk"

    Set oDesc = Description.Create
    oDesc( "micclass" ).value = "Link"
    Set ieBrowser=Browser( "Index:=0")
    Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc )
    For x = 0 to colObject.Count - 1
           Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc )

                    'MsgBox colObject(x).GetROProperty("innertext")
                    colObject(x).Click
                    ieBrowser.Sync
                    wait(2)
            ieBrowser.object.GoBack
    Next
    最主要的问题还是colObject被使用后就被释放了 必须重新取
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-10 17:57
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
    发表于 2011-1-14 14:40:03 | 只看该作者
    回复 2# deadhunter


        LZ要么用模拟键盘的操作来实现, 譬如点完第一个Link之后按Backspace回退键回到主页, 刚才试了下点击图片的link, 由于它的光标focus在搜索框里, 可以按TAB键来切换, 不然会影响Backspace键

    Set wshShell=CreateObject("WScript.Shell")
    wshShell.SendKeys "{TAB}"
    wshShell.SendKeys "{Backspace}"
    Set wshShell = nothing
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-11-15 14:58
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    6#
     楼主| 发表于 2011-1-14 15:51:16 | 只看该作者
    谢谢大家,是colObject被使用后就被释放的原因
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-20 08:01 , Processed in 0.087126 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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