51Testing软件测试论坛

标题: 如何模拟鼠标单击网页任意处的动作 [打印本页]

作者: metalfan    时间: 2008-1-29 11:06
标题: 如何模拟鼠标单击网页任意处的动作
已录制一个脚本。脚本在回放的时候,只有手动用鼠标单击网页任意处,才能继续执行后续脚本。请问如何解决???请高手赐教!

如何模拟鼠标单击网页任意处的动作???
作者: you力    时间: 2008-1-29 11:38
呵呵,这个简单,你手动添加一个对象,然后step 一个click功能。程序重定位,后台程序会把值进行判断或处理一下.
作者: 郁金香    时间: 2008-1-29 12:22
标题: 回复 2# 的帖子
问题是加入了一个对象,手工写了click代码,还是执行不下去。只有手工操作鼠标才能继续执行完脚本。目前我们采用的是模拟鼠标的方法
作者: xiaonan    时间: 2008-1-29 13:50
还是先研究一下,为什么非要手动去点一下才会继续被执行?是不是经过哪些操作后,操作页面失去焦点了? 那就直接加一步Sync
作者: 郁金香    时间: 2008-1-29 13:56
标题: 回复 4# 的帖子
我的页面中有html编辑器控件(说明:此控件类似于咱们发邮件写正文内容的控件),所以造成失去了焦点。
作者: lantianwei    时间: 2008-1-29 14:13
我有一个想法:
1.先得到该页面所有的对象的个数(既WEBELEMENT的个数)
2.然后根据得到的个数生成一个随机数
3.得到该随机对象,并运行CLICK方法
不知道能不能满足你的需求,
作者: 郁金香    时间: 2008-1-29 17:17
标题: 回复 6# 的帖子
我觉得方法可能行不通。原因是:我自己手写了代码,对输入框的单击事件,它还是中途停止,不继续运行了。只有手工点一下屏幕,才会继续执行。还想请教版主,还有没有别的方法可以解决此问题呢?
作者: lantianwei    时间: 2008-1-29 18:43
原帖由 郁金香 于 2008-1-29 17:17 发表
我觉得方法可能行不通。原因是:我自己手写了代码,对输入框的单击事件,它还是中途停止,不继续运行了。只有手工点一下屏幕,才会继续执行。还想请教版主,还有没有别的方法可以解决此问题呢?

加个键盘操作呢?比如回车
你的问题应该是对象焦点的问题,用个acticity方法呢?
作者: 郁金香    时间: 2008-1-30 09:42
标题: 回复 8# 的帖子
acticity方法这个方法在帮助怎么找不到呢?请问版主:我该如何操作呢?如果是用你说的第一种方法加键盘操作的话,是用sendkeys来写代码吗?
作者: zhou840401    时间: 2008-1-30 10:27
你这个原因好像是windows xp更新之后,如果页面有加载activex控件的时候,它会提示你"按空格键或Enter 键以激活并使用此控件",激活前与激活会是两个不同的对象,你可以用spy查看一下.可以手动的添加没有激活前的activex控件对象,然后添加一个click的步骤.不知道楼主是不是我说的这种情况,你用spy 得到那个对象是一个winobject对象.
作者: 郁金香    时间: 2008-1-30 15:42
标题: 回复 10# 的帖子
谢谢你的热心回答。可是,我的问题不属于你所说的这种情况。
作者: lantianwei    时间: 2008-1-30 16:15
原帖由 郁金香 于 2008-1-30 09:42 发表
acticity方法这个方法在帮助怎么找不到呢?请问版主:我该如何操作呢?如果是用你说的第一种方法加键盘操作的话,是用sendkeys来写代码吗?

1.我的意思就是激活一个窗体,不知道那方法有没有写错
2.模拟键盘是用那个函数
3.还有就是用RUN TIME里的一些方法,即.OBJECT.*
因为我没有遇到过你这样的问题,我也只是建议,不知道能不能真正解决.
作者: 郁金香    时间: 2008-1-30 16:37
标题: 回复 12# 的帖子
我现在用的是模拟鼠标录制的方法解决的。我想找个更加通用的方法。还有请问版主的激活窗体应该用什么方法呢?我查找帮助,没有找到。
作者: lantianwei    时间: 2008-1-30 17:13
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
参考这个
作者: caodongjian    时间: 2008-1-30 18:04
好像可以直接重新加载一下
用.sync
我遇到过情况.是新打开一个网页......


4楼说的那样

可以去试下
作者: mythxhg    时间: 2008-1-30 18:24
Set dr = CreateObject("Mercury.DeviceReplay")
dr.MouseClick x, y, types
Set dr = nothing

这些代码可以帮你点屏幕上坐标为(x,y)的位置,types是指点击类型,0是左键,1是右键,反正就是0或1,自己试一下吧.
作者: mythxhg    时间: 2008-1-30 18:28
这个是完全模拟鼠标的.

x,y你可以根据IE属性自己算出坐标范围来.
作者: 郁金香    时间: 2008-1-31 10:29
标题: 回复 17# 的帖子
谢谢各位的帮助,真心感谢了!在此预祝大家春节快乐!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2