51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

12
返回列表 发新帖
楼主: 7444
打印 上一主题 下一主题

[求助] 如何录制提取出在百度搜索框的下拉菜单中的对象?----好难啊-求教高人

[复制链接]

该用户从未签到

21#
 楼主| 发表于 2008-1-7 18:42:12 | 只看该作者

还不成熟

SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","http://www.google.com/webhp?complete=1&hl=en"


Browser("Google").Page("Google").WebEdit("q").Object.focus

wait 3
Dim tb,rcount

search = "Quick"   'any string you want to search...
arrsearch = SplitString(search)

For i = 0 to UBound(arrsearch) - 1
Browser("Google").Page("Google").WebEdit("q").Set arrsearch(i)
Browser("Google").Page("Google").WebEdit("q").FireEvent "onkeyup"
Wait(1)

Next

Dim value1,value2
rcount=Browser("Google").Page("Google").WebTable("index:=1").RowCount

For i=0 to rcount-1
value1=Browser("Google").Page("Google").WebTable("index:=1").GetCellData(i,1)
value2=Browser("Google").Page("Google").WebTable("index:=1").GetCellData(i,2)

DataTable.Value(1,1)=value1
DataTable.Value(2,1)=value2
' ------------------------------------------
' please init DataTable first....
'-------------------------------------------
DataTable.SetCurrentRow(i+1)
Next

Function SplitString(str)
  Dim arr()
'search = "Hello world"
length = len(str)
Redim arr(length)
        For intCounter = 0 to UBound(arr) - 1
arr(intCounter) = Mid(search, 1,intCounter + 1)
Next
SplitString = arr
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2008-1-8 13:28:56 | 只看该作者

回复 14# 的帖子

呵呵 我想大家有点误会了,我只是觉得楼主当时的问题不是很清晰,想了解他的用意而已。
楼主后面的脚本感觉可行,找个时间试试。
又学习了。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 10:16
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    23#
    发表于 2008-1-8 17:00:40 | 只看该作者
    不错  看了这么久  没有明白是什么意思
    不好意思啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24#
    发表于 2008-1-8 17:40:49 | 只看该作者
    BAIDU??

    就是一个脚本用了正则表达式动态生成的下拉列表.

    用VC++的SPY++可以抓到一个Auto-Suggest Dropdown对象下的SysListView32

    这些对象就象Desktop上的右键菜单对象一样,没有对应事件激活时是不显示的,但是这些对象已经存在,而这个baidu的下拉则是由脚本的正则表达式动态生成的,所以,当你输入a激活了下拉之后再用b激活下拉,可以发现对象已经不同了.

    不过消息是LVM类型的,WIN API跨进程访问的话需要注入获取权限了.

    不知道我有没抓错,各位也可以试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25#
    发表于 2008-1-8 18:02:16 | 只看该作者
    同意楼上的说法.
    其实没有想象中的那么难.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26#
     楼主| 发表于 2008-1-10 16:57:20 | 只看该作者

    一般网站好像是缓存,google suggest的才是服务端经过处理的动态显示

    还有下拉菜单中  那个搜索结果的显示数量也是会不断变化的
    好像google确实牛啊
    我现在解决了  但开始真的觉得束手
    我也刚工作   这里高手不少  多指教
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27#
    发表于 2008-1-10 16:58:25 | 只看该作者
    再请教问下,怎么点击如 19楼 图片中都 “关闭” 按钮
    希望高手再指点下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    28#
    发表于 2008-1-10 17:40:28 | 只看该作者

    回复 26# 的帖子

    你问的问题大家都答得那么积极,你说解决了怎么不把方法拿出来共享一下啊,呵呵

    PS:我刚看了一下那个页面内的脚本代码,应该是象楼主说的根据本地缓存生成的,而不是根据内部脚本.这个生成的工作应该是由系统来完成,象EXPLORER上的地址栏一样,不过它是根据本地数据.它不是XML的数据类型,你要处理的实际上是系统的生成的SysListView32对象,系统对这些文本框都会产生这类型的下拉对象.

    [ 本帖最后由 mythxhg 于 2008-1-10 17:45 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 23:32 , Processed in 0.069266 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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