51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6045|回复: 17
打印 上一主题 下一主题

[讨论] 如何模拟鼠标单击网页任意处的动作

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-1-29 11:06:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
已录制一个脚本。脚本在回放的时候,只有手动用鼠标单击网页任意处,才能继续执行后续脚本。请问如何解决???请高手赐教!

如何模拟鼠标单击网页任意处的动作???
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-1-29 11:38:37 | 只看该作者
呵呵,这个简单,你手动添加一个对象,然后step 一个click功能。程序重定位,后台程序会把值进行判断或处理一下.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-1-29 12:22:26 | 只看该作者

回复 2# 的帖子

问题是加入了一个对象,手工写了click代码,还是执行不下去。只有手工操作鼠标才能继续执行完脚本。目前我们采用的是模拟鼠标的方法
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-1-29 13:50:51 | 只看该作者
还是先研究一下,为什么非要手动去点一下才会继续被执行?是不是经过哪些操作后,操作页面失去焦点了? 那就直接加一步Sync
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-1-29 13:56:14 | 只看该作者

回复 4# 的帖子

我的页面中有html编辑器控件(说明:此控件类似于咱们发邮件写正文内容的控件),所以造成失去了焦点。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-1-29 14:13:24 | 只看该作者
我有一个想法:
1.先得到该页面所有的对象的个数(既WEBELEMENT的个数)
2.然后根据得到的个数生成一个随机数
3.得到该随机对象,并运行CLICK方法
不知道能不能满足你的需求,
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-1-29 17:17:48 | 只看该作者

回复 6# 的帖子

我觉得方法可能行不通。原因是:我自己手写了代码,对输入框的单击事件,它还是中途停止,不继续运行了。只有手工点一下屏幕,才会继续执行。还想请教版主,还有没有别的方法可以解决此问题呢?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-1-29 18:43:19 | 只看该作者
原帖由 郁金香 于 2008-1-29 17:17 发表
我觉得方法可能行不通。原因是:我自己手写了代码,对输入框的单击事件,它还是中途停止,不继续运行了。只有手工点一下屏幕,才会继续执行。还想请教版主,还有没有别的方法可以解决此问题呢?

加个键盘操作呢?比如回车
你的问题应该是对象焦点的问题,用个acticity方法呢?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-1-30 09:42:10 | 只看该作者

回复 8# 的帖子

acticity方法这个方法在帮助怎么找不到呢?请问版主:我该如何操作呢?如果是用你说的第一种方法加键盘操作的话,是用sendkeys来写代码吗?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-1-30 10:27:03 | 只看该作者
你这个原因好像是windows xp更新之后,如果页面有加载activex控件的时候,它会提示你"按空格键或Enter 键以激活并使用此控件",激活前与激活会是两个不同的对象,你可以用spy查看一下.可以手动的添加没有激活前的activex控件对象,然后添加一个click的步骤.不知道楼主是不是我说的这种情况,你用spy 得到那个对象是一个winobject对象.
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-1-30 15:42:59 | 只看该作者

回复 10# 的帖子

谢谢你的热心回答。可是,我的问题不属于你所说的这种情况。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-1-30 16:15:02 | 只看该作者
原帖由 郁金香 于 2008-1-30 09:42 发表
acticity方法这个方法在帮助怎么找不到呢?请问版主:我该如何操作呢?如果是用你说的第一种方法加键盘操作的话,是用sendkeys来写代码吗?

1.我的意思就是激活一个窗体,不知道那方法有没有写错
2.模拟键盘是用那个函数
3.还有就是用RUN TIME里的一些方法,即.OBJECT.*
因为我没有遇到过你这样的问题,我也只是建议,不知道能不能真正解决.
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-1-30 16:37:08 | 只看该作者

回复 12# 的帖子

我现在用的是模拟鼠标录制的方法解决的。我想找个更加通用的方法。还有请问版主的激活窗体应该用什么方法呢?我查找帮助,没有找到。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-1-30 17:13:07 | 只看该作者
Sub Object_Example()
'The following example uses the .Object property to activate an edit box's native focus method:
Set MyWebEdit = Browser("Mercury Tours").Page("Mercury Tours").WebEdit("username").Object
MyWebEdit.focus
End Sub
参考这个
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-1-30 18:04:32 | 只看该作者
好像可以直接重新加载一下
用.sync
我遇到过情况.是新打开一个网页......


4楼说的那样

可以去试下
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2008-1-30 18:24:04 | 只看该作者
Set dr = CreateObject("Mercury.DeviceReplay")
dr.MouseClick x, y, types
Set dr = nothing

这些代码可以帮你点屏幕上坐标为(x,y)的位置,types是指点击类型,0是左键,1是右键,反正就是0或1,自己试一下吧.
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2008-1-30 18:28:59 | 只看该作者
这个是完全模拟鼠标的.

x,y你可以根据IE属性自己算出坐标范围来.
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2008-1-31 10:29:06 | 只看该作者

回复 17# 的帖子

谢谢各位的帮助,真心感谢了!在此预祝大家春节快乐!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-19 06:42 , Processed in 0.077104 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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