51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8414|回复: 21
打印 上一主题 下一主题

[原创] 如何操作WEB滚动条(不使用低级录制方式)——在线等待

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-12-25 16:12:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
进行WEB页面录制时,QTP不能识别滚动条,采用SKY探测也没准确结果,以致无法用脚本操作滚动条,请各位高手指点QTP如何操作WEB页面的滚动条,不甚感激!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-12-25 16:18:20 | 只看该作者

回复 1# 的帖子

如何录制提取出在百度搜索框的下拉菜单中的对象?----好难啊-求教高人
比如在百度输入“国家”   下拉菜单就显示了好多包含此二字的搜索条目   如何把这些东西搞定啊
Object Spy 也弄不到值     low level  and analog 也不行

感觉和你遇到的难点是一样的,你能指点我吗?

你那个用键盘上下控制滚动 看看有机会不
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-12-25 16:41:16 | 只看该作者
Dim pageobj '//定义画面对象
Set pageobj = Browser("CreationTime:=1").Page("index:=") '//画面对象赋值
pageobj.Object.body.doScroll(scrollbarDown) '//操纵画面上的ScrollBar向下滚动。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-12-25 16:43:32 | 只看该作者
object.doScroll( [sScrollAction])
sScrollAction Optional. String that specifies how the object scrolls, using one of the following values:

scrollbarDown: Default. Down scroll arrow is at the specified location.  
scrollbarHThumb: Horizontal scroll thumb or box is at the specified location.
scrollbarLeft: Left scroll arrow is at the specified location.
scrollbarPageDown: Page-down scroll bar shaft is at the specified location.
scrollbarPageLeft: Page-left scroll bar shaft is at the specified location.
scrollbarPageRight: Page-right scroll bar shaft is at the specified location.
scrollbarPageUp: Page-up scroll bar shaft is at the specified location.
scrollbarRight: Right scroll arrow is at the specified location.
scrollbarUp: Up scroll arrow is at the specified location.
scrollbarVThumb: Vertical scroll thumb or box is at the specified location.
down: Composite reference to scrollbarDown.
left: Composite reference to scrollbarLeft.
pageDown: Composite reference to scrollbarPageDown.
pageLeft: Composite reference to scrollbarPageLeft.
pageRight: Composite reference to scrollbarPageRight.
pageUp: Composite reference to scrollbarPageUp.
right: Composite reference to scrollbarRight.
up: Composite reference to scrollbarUp.
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-12-25 17:06:52 | 只看该作者
楼上的利害啊
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-12-25 17:13:28 | 只看该作者
原帖由 jinsen 于 2007-12-25 16:41 发表
Dim pageobj '//定义画面对象
Set pageobj = Browser("CreationTime:=1").Page("index:=") '//画面对象赋值
pageobj.Object.body.doScroll(scrollbarDown) '//操纵画面上的ScrollBar向下滚动。

提示scrollbarDown未定义
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-12-25 17:34:56 | 只看该作者
不会吧,这段代码是我在本地跑通过后再发上来的。
我用的是描述性编程,像"CreationTime"等需要对应于你的Web页面做出一定的修正,还有就是你要控制的ScroolBar的定位要准确。我这里控制的是IE上的ScroolBar,如果是要控制Frame等页面内部的ScroolBar的话,pageobj也要改变一下。

pageobj.Object.body.doScroll(scrollbarDown)
这个用的是HTML语言
scrollbarDown:这个是常量
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-12-27 11:02:18 | 只看该作者
原帖由 jinsen 于 2007-12-25 17:34 发表
不会吧,这段代码是我在本地跑通过后再发上来的。
我用的是描述性编程,像"CreationTime"等需要对应于你的Web页面做出一定的修正,还有就是你要控制的ScroolBar的定位要准确。我这里控制的是IE上的ScroolBar,如果是 ...




     你写的这段代码的确不能执行(无论Scrollbardown为何值都会报错),你说的Scrollbardown是常量,那就可以直接用常数代替,可我觉得这个常量又与object.doScroll( [sScrollAction])的使用描述不符....请将Scrollbar的详细使用说明共享出来!..谢谢..

[ 本帖最后由 lelebachelor 于 2007-12-27 11:04 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-12-27 11:08:43 | 只看该作者
本人凝问:在QTP的帮助文档中都看到有关Scrollbar对象说明,这应该说QTP是可以支付Scrollbar对象的,但为何实际使用QTP却识别不到对象,是不是设置问题呢(我使用的是QTP8。2版)?  如果QTP能识别到Scrollbar对象我想问题就好办了,请问有没有同仁识别到此对象。。。。盼回谢谢。。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-12-27 11:27:34 | 只看该作者
LZ和zhou840401:

很对不起,由于我在QTP里运行时没有问题,所以对于其他的参数没有一一检测。
"scrollbarDown"由于是默认值,在方法里写不写都可以,所以可能由于某种原因(不明)QTP在方法发生错误的时候,没有报错。
对于常量这个说法确实是不正确的,它应该作为一个字符串传入。

以下是修正后的代码:

Dim pageobj '//定义画面对象
Set pageobj = Browser("CreationTime:=4").Page("index:=") '//画面对象赋值
pageobj.Object.body.doScroll("scrollbarUp") '//操纵画面上的ScrollBar向上滚动。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2007-12-27 11:45:06 | 只看该作者
1.        doScroll(scrollbardown)/doScroll(scrollbarup)这样写是能执行,但是执行语句没有实际结果,即滚动条没有进行向下/向上行动....
     2.        scrollbardown/scrollbarup是取默认值,请问这个默认值是多少(应该是行数吧)
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-12-27 12:18:53 | 只看该作者
原帖由 lelebachelor 于 2007-12-27 11:45 发表
1.        doScroll(scrollbardown)/doScroll(scrollbarup)这样写是能执行,但是执行语句没有实际结果,即滚动条没有进行向下/向上行动....
     2.        scrollbardown/scrollbarup是取默认值,请问这个默认值是多少 ...



1.那时候在我本地,我只适用了doScroll(scrollbardown),语句执行没有错误,并且滚动条向下行动了。这才导致了我说"scrollbardown"是常量,也没有检测其他的参数。很对不起。
2.对于默认值这个我没有找到,不过找了一个新的控制ScrollBar的方法,并且应该能够精确的控制。以下是代码:
Dim pageobj '//定义画面对象
Set pageobj = Browser("CreationTime:=4").Page("index:=") '//画面对象赋值
'pageobj.Object.body.doScroll() '//操纵画面上的ScrollBar向下滚动。

Dim myScrollHeight,myScrollLeft,myScrollTop,myScrollWidth,tempValue
'获取对象的滚动高度。
myScrollHeight = pageobj.Object.body.scrollHeight
'获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。
myScrollLeft = pageobj.Object.body.scrollLeft
'获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。
myScrollTop = pageobj.Object.body.scrollTop
'获取对象的滚动宽度。
myScrollWidth = pageobj.Object.body.scrollWidth

tempValue = "ScrollHeight = " & myScrollHeight & vbNewLine
tempValue = tempValue + "ScrollLeft = " & myScrollLeft & vbNewLine
tempValue = tempValue + "ScrollTop = " & myScrollTop & vbNewLine
tempValue = tempValue + "ScrollWidth = " & myScrollWidth

print(tempValue)

'设置位于对象最顶端和窗口中可见内容的最顶端之间的距离为100。
pageobj.Object.body.scrollTop = 100

我的想法是可以通过给这些属性赋值来控制滚动条的行动。

[ 本帖最后由 jinsen 于 2007-12-27 12:21 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2007-12-28 11:47:10 | 只看该作者
jinsen所提出的方法,还是没解决问题,请大家继续关注。。。。期待解决。。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2007-12-28 15:13:06 | 只看该作者
自己顶啊...
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2007-12-28 15:37:32 | 只看该作者
能不能再具体描述下你现在的问题?我发的两种方法在我本地都可以对页面的滚动条进行操作的。第一种无法精确操作,但我想第二种在经过计算后,应该是可行的。
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2008-2-22 10:28:14 | 只看该作者
超级期待中
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2008-2-22 11:25:02 | 只看该作者
原帖由 zhou840401 于 2007-12-25 17:13 发表

提示scrollbarDown未定义



txtScrollMe.doScroll("scrollbarPageDown");

没加引号!
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2008-3-1 22:39:28 | 只看该作者

回复 17# 的帖子

我试了一下
可以对滚动条进行操作的
例如
browser("百度一下,你就知道").Page("百度搜索_adf").WebElement("新闻   网页   贴吧   知道   MP3").Drag 1,1700
前提是把webelement("新闻   网页   贴吧   知道   MP3")这个对象添加到对象库中
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2009-8-26 20:53:21 | 只看该作者
原帖由 flyfly310 于 2008-3-1 22:39 发表
我试了一下
可以对滚动条进行操作的
例如
browser("百度一下,你就知道").Page("百度搜索_adf").WebElement("新闻   网页   贴吧   知道   MP3").Drag 1,1700
前提是把webelement("新闻   网页   贴吧   知道    ...



这个才是正解
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2010-12-13 19:15:12 | 只看该作者
pageobj.Object.body.scrollTop = 100
设置完之后pageobj.Object.body.scrollTop还是为0,不能对它进行设置值吧?
上面的方法都试过,还是不行,不能操作滚动条,请高手现身指点
1.那时候在我本地,我只适用了doScroll(scrollbardown),语句执行没有错误,并且滚动条向下行动了。 ...
jinsen 发表于 2007-12-27 12:18
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-8 23:32 , Processed in 0.110520 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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