XMouseButtonControl模拟按键(mouse control)

XMouseButtonControl模拟按键(mouse control)JavaScript 实现按键精灵 中曾记录了几个事件对象 本文将会对它们进行一次实战 要完成的动作包括滚动 点击和翻页 滚动是通过修改容器元素的 scrollTop 属性实现的 期间会进行一系列的计算 而每次滚动都会包含一个个小的偏移动作 为了让这些动作能有序进行 自定义了一个 Promise 如下所示 为了让滚动表现的更加顺滑 采用了 requestAnima 方法

大家好,我是讯享网,很高兴认识大家。



JavaScript实现按键精灵》中曾记录了几个事件对象,本文将会对它们进行一次实战,要完成的动作包括滚动、点击和翻页。

  滚动是通过修改容器元素的scrollTop属性实现的,期间会进行一系列的计算,而每次滚动都会包含一个个小的偏移动作,为了让这些动作能有序进行,自定义了一个Promise,如下所示。

  为了让滚动表现的更加顺滑,采用了requestAnimationFrame()方法,滚动的方向分为三种,分别是向上、向下或待机,如下所示。

  滚动的容器元素多变,可能是body,也可能是根元素或者是其它元素,具体得视页面而定,示例页面采用的是根元素,如下所示。

  等到的效果如下图所示。

在javascript中自动单击按钮_触屏
讯享网

  虽然完成了自动滚动,但当前的代码无法精度控制,例如难以配置成第几秒向上或向下滚动,或者指定滚动到真实用户会停留的位置的时间。

触屏touch事件记录》中的记录。

  虽然完成了自动点击,但还不够灵活。当要触发的动作不是由指定的元素触发的时,这段脚本就起不了作用,并且手机屏幕尺寸众多,难以精确的在某一指定区域内点击。

  由于很依赖事件类型,因此当绑定的动作不在该事件中时,代码也会失效。如果要触发页面监测的请求,那么不得不先去翻源码,搜寻触发事件。

触屏touch事件记录》中的记录。

  得到的效果如下图所示。

在javascript中自动单击按钮_在javascript中自动单击按钮_02

  示例中使用的是swiper触屏滑动插件,当换成其他插件时,容器就需要跟着改变。

  上述所有自动化操作都是基于DOM结构完成的,水能载舟亦能覆舟,无法跳出DOM的限制,就会导致一系列的问题,例如针对不同页面的结构要做单独的分析、动作精度难以控制、真实的用户轨迹难以模拟、代码不够灵活难以复用。

  在实际情况中,还有很多复杂的动作(例如答题、填表单等),光靠上述这点代码是远远不够的,目前还做不到像按键精灵那样在屏幕上录制行为,这么简洁。

 

demo代码已上传至GitHub:

https://github.com/pwstrick/auto

 

小讯
上一篇 2025-06-16 12:31
下一篇 2025-05-17 15:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/196922.html